Como desarrollador de PHP, ¿qué tan difícil sería aprender C # para Xamarin y Unity?

En una escala variable de dificultad de cambio de idioma, lo pondría en algún lugar entre “fácil” y “medio”. Si no tiene experiencia con la escritura estricta o los lenguajes orientados a objetos verdaderos, se inclinará más hacia el medio. Todos los conceptos centrales se trasladan, pero hay algunas diferencias en la sintaxis, así como varios cambios clave:

  • C # es un verdadero lenguaje orientado a objetos. Las clases no son opcionales, todo debe estar en una clase. El alcance, la visibilidad y los espacios de nombres se vuelven mucho más importantes.
  • C # está estrictamente escrito. Todas las variables deben declararse con un tipo de antemano, y las sugerencias de tipo no son opcionales. Todas las funciones y valores de retorno deben tener un tipo declarado. Los tipos no hacen malabares con tanta frecuencia, y una variable solo puede almacenar el tipo con el que se declaró.
  • Las matrices en C # funcionan de manera muy diferente. A diferencia de los conglomerados sin tipo, completamente asimétricos y sin forma que se encuentran en PHP, las matrices de C # están limitadas a un solo tipo. Las matrices multidimensionales y dentadas deben declararse como tales, y no se permite mezclar tipos. Sin embargo, la biblioteca estándar incluye una maravillosa colección de estructuras de datos versátiles en forma de matriz bajo el espacio de nombres System.Collections.
  • Hay algunas diferencias clave de sintaxis que pueden volverlo loco. A saber, -> es ahora. y ahora es +. => no se usa en ninguna parte, y foreach funciona un poco diferente. Las variables no tienen un $.
  • La biblioteca estándar es muy diferente, ya que C # está diseñado para la programación de escritorio donde PHP está orientado a la web. Querrás usar XML en lugar de JSON, y no esperes un montón de ayudantes para la programación web y las API.

También hay varias características útiles en C # que carece de PHP, incluidos atributos, genéricos, eventos y accesores. Ninguno de ellos es necesario para usar el lenguaje, pero pueden ser bastante útiles.

More Interesting

¿Cuál es la forma completa de iOS?

¿Alguna ventaja / desventaja de dar equidad a la empresa de desarrollo en la construcción de una versión beta de su producto?

¿Podría ayudar incluir frases en la sección de palabras clave de iTunes Connect?

¿Qué sucedería si Apple lanza Apple Pay y anuncian que también han implementado una funcionalidad de lector NFC en sus dispositivos y, por lo tanto, pueden actuar como terminales NFC-EMV completas?

¿Cuáles son las mejores prácticas para autocompletar en UITextField?

Xamarin, NativeScript de Telerik, Corona SDK y una miríada de otros marcos de desarrollo cruzado se publican todo el tiempo. ¿No es mejor ser nativo de inmediato en lugar de agregar una capa de abstracción entre el desarrollador y el idioma de destino?

Como contratista / consultor en SF Bay Area / Silicon Valley, ¿es mejor aprender desarrollo de Android o iOS?

Cómo instalar iOS 11 public beta en mi iPhone

Cómo crear la animación de la aplicación de iPhone de AirBnB para el menú lateral en una aplicación nativa

¿Cuál es la mejor fuente para aprender a desarrollar aplicaciones para iPhone?

¿Cuáles son las últimas actualizaciones para las descargas de Cydia para iOS 11?

Cómo instalar la versión beta de iOS 11

¿Cómo puede alguien desarrollar una aplicación social para iOS sin ayuda?

Cómo escribir y organizar una lista de tareas pendientes para el proyecto de desarrollo de juegos iOS / Android

¿Vale la pena tomar el curso de desarrollo de aplicaciones iOS en la Universidad de Stanford? ¿Por qué?