Warning, warning, ceci n'est pas une rubrique à troll !!
Bien qu'étant plutot spécialiste Java, je me suis mis récemment au C#. Loin des débats qui n'en finissent plus pour savoir lequel des deux p... le plus loin, je tenais à faire une petite rubrique pour lister "les trucs qui tuent" qui existent dans chaque langage et que tout bon développeur aime connaitre.
Et donc le truc qui tue du jour :
Bon en fait il ne s'agit pas vraiment d'un truc qui tue, juste une petite clarification entre le type valeur de C# et le type natif en Java.
On dit souvent que Java n'est pas vraiment un langage objet car tout n'est pas objet. En effet il existe des types dits "natifs", ce sont les fameux int, long, float, boolean et char (pour la liste complète : voir la doc).
Ces types ne se manipulent pas comme les autres :
En C#, ces types natifs ont été remplacés par des types valeurs. Ce sont en fait des structures (mot clé struct) et non des classes. Parmi les différences avec les classes :
(Pour plus de détails, voir la doc)
En fait, pour bien comprendre ces types valeurs sont tous des alias vers des types intégrés au framework, par exemple int alias de System.Int32. Et donc il y a des méthodes disponibles sur ces types valeurs ce qui permet d'écrire :
int i = 1; Console.WriteLine(i.ToString()); // ici l'intérêt est minime, c'est uniquement pour l'exemple
ou bien
int i = int.Parse("1");
Dans ces conditions, on peut effectivement dire que C# est un peu plus objet que Java.