De ma compréhension et
sont la même chose en c#, mais j’ai lu un certain nombre de fois que est préféré au
mais sans aucune raison donnée. Alors, quelle est la raison ? Devrais-je m’y intéresser ?
Réponses
Trop de publicités?Les deux sont en effet synonymes; int
sera un peu plus familiers de la recherche, Int32
fait le 32 bits plus explicite pour ceux qui lisent votre code. Je serais enclin à utiliser int
où j'ai juste besoin 'un entier', Int32
où la taille est importante (code de chiffrement, structures), de sorte futurs responsables savent qu'il est sécuritaire pour agrandir une int
le cas échéant, mais devrait prendre en charge l'évolution Int32
s de la même manière.
Le code résultant sera identique: la différence est purement une des raisons de lisibilité de code ou de l'apparence.
ECMA-334 c# spéc. lang (page 18) :
Chacun des types prédéfinis est un raccourci pour un type fourni par le système. Par exemple, le mot clé int désigne le struct System.Int32. Comme une question de style, utiliser le mot clé est favorisée par rapport à l’utilisation du nom de type complet de système.
Ils ont tous deux déclarent entiers de 32 bits, et comme les autres affiches a affirmé, dont celui que vous utilisez est principalement une question de style syntaxique. Cependant ils ne toujours comportent de la même manière. Par exemple, le compilateur c# ne permettra pas cela :
mais il ne permettra pas cela :
Allez comprendre.
J'ai toujours utiliser le système de types - par exemple, Int32 au lieu de int. J'ai adopté cette pratique après la lecture Appliquée .Net Framework de Programmation - auteur Jeffrey Richter a fait une bonne affaire pour utiliser l'intégralité des noms de type de. Voici les deux points qui m'a marqué:
Les noms de Type peut varier entre .Net languages. Par exemple, en C#, le long des cartes de Système.Int64 alors qu'en C++ avec les extensions gérées, le long des cartes de Int32. Puisque les langues peuvent être mélangés et mis en correspondance lors de l'utilisation .Net, vous pouvez être sûr qu'utiliser explicitement le nom de la classe sera toujours plus clair, peu importe le lecteur de langue de leur choix.
-
De nombreuses cadre de méthodes ont des noms de type dans le cadre de leurs noms de méthode:
BinaryReader br = new BinaryReader( /* ... */ );
float val = br.ReadSingle(); // Ok, but looks a little odd...
Single val = br.ReadSingle(); // Ok, and is easier to read
int est un mot clé c# et sans ambiguïté.
La plupart du temps il n’est pas grave, mais deux choses qui vont à l’encontre de Int32 :
- Vous devez avoir un « using System ; » déclaration. à l’aide de « int » nécessite n° instruction using.
- Il est possible de définir votre propre classe appelée Int32 (ce qui serait ridicule et déroutant). int signifie toujours int.