2009-05-20 17 views
0

J'ai toujours été habitué à utiliser String au lieu de string et Int32 au lieu de int. Principalement parce que tout est une classe, j'aime donc rester cohérent et traiter les soi-disant «primitifs» comme tout autre classe/objet.Y a-t-il une raison pour ne pas utiliser les alias dans l'espace de noms System?

Je viens de voir un article sur les normes de codage où il est mentionné "Toujours utiliser des types prédéfinis C# plutôt que les alias dans l'espace de noms système."

Il n'a pas dit pourquoi cependant.

Répondre

1

Les types sont complètement interchangeables, et compiler à la même IL. Il devrait y avoir une règle clé dans vos normes de codage - si vous modifiez un fichier partagé, utilisez le même style que le code existant. Rien n'est plus ennuyeux que d'essayer de réparer un fichier où le style change toutes les autres fonctions.

Alors, choisissez-en un et soyez cohérent.

0

Il n'y a aucune raison qui affecterait le comportement ou les performances de votre application. C'est une recommandation de style recommandée - et comme pour toutes les directives de style, vous pouvez l'ignorer si vous le souhaitez. Presque toutes les stratégies de style OSS et d'entreprise stipuleront que vous devez utiliser les alias - gardez cela à l'esprit.

+0

Si c'est simplement une option de style alors c'est une excellente nouvelle! –

+0

Voulez-vous dire qu'il y a une raison * non * qui affecterait le comportement ou les performances de votre application? –

+0

Merci @Jon - parfois à facile de manquer deux clés :). –

0

Il n'y a aucune raison technique d'utiliser l'une ou l'autre de ces options. Les deux sont identiques en termes d'IL générée. Cependant, la plus grande raison est la cohérence et la maintenabilité par d'autres. L'utilisation de "string", "int", "double", etc. est plus attendue, et donc plus facile à maintenir.

De plus, si vous ne disposez pas d'un système à l'aide ;, il est beaucoup plus agréable de taper « int » que « System.Int32 » tout le temps ...

+0

Ce ne serait pas bien si vous deviez déclarer 3 variables de type Int16, int et Int64 le feraient? –

+0

Non. J'utilise habituellement short, int, et long cependant;) –