Envoyé par
DonQuiche
Effectivement, le C# n'a rien de très complexe. En revanche, il est riche : il contient de nombreuses fonctionnalités qui se sont ajoutées au fil des années, ce qui est une bonne chose mais fait beaucoup à apprendre pour un débutant. Sans parler de l'API, riche, généralement bien foutue mais vaste.
Pour quelqu'un qui n'a jamais pratiqué que des langages à typage dynamique (faible comme PHP ou fort comme Python), le passage à un typage statique va être le plus déconcertant (impossibilité d'ajouter des membres à la volée) et contraignant (nécessité de bien penser sa hiérarchie d'objets). Gaffe à bien comprendre aussi :
* "var" est utilisé pour dire au compilateur de deviner tout seul le type de la variable en fonction de ce qu'on lui assigne. Le typage fort est conservé, le résultat compilé est le même que si l'on avait explicitement écrite le type. "var x = 5" fait que x sera du type int puisque 5 est de type int. C'est juste une économie de temps pour les noms de types à rallonge.
* "dynamic" définit une variable du type php : le type ne sera pas connu à la compilation et, à l'exécution, chaque accès à un membre / appel à une méthode nécessitera d'interroger l'objet avec la perte de performances qui va avec. Cela dit, la variable dynamique a en fait un vrai type qu'on peut ensuite retrouver via un cast : "dynamic x = 5; int y = (int)x" crée un entier, le stocke dans une variable dynamique et le caste ensuite à nouveau en entier.
Bref, dynamic est à éviter sauf s'il est vraiment nécessaire, "var" ne pose pas de problème en revanche.
Enfin, C# n'est que le troisième langage le plus populaire. Les classements varient mais, en général, on a Java en premier, C/C++ en second, C# en troisième. Les trois ont leurs domaines différents : ***grosso modo***, le C/C++ pour du bas niveau ou du code à très haute performance ou temps réel, C# pour des applis Windows / Windows Phone, Java pour Android, Java et C# pour des serveurs web entreprise ou haute performance.