72 votes

c #: différence entre "System.Object" et "object"

En C #, existe-t-il une différence entre utiliser System.Object dans le code plutôt que juste object , ou System.String plutôt que string et ainsi de suite? Ou est-ce juste une question de style?

Y a-t-il une raison pour laquelle un formulaire est préférable à un autre?

69voto

Jon Skeet Points 692016

string est un alias pour global::System.String . C'est simplement du sucre syntaxique. Les deux sont parfaitement interchangeables et il n'y aura aucune différence dans le code compilé.

Personnellement, j'utilise les alias pour les noms de variables, etc., mais j'utilise les noms de type CLR pour les noms dans les API, par exemple:

 public int ReadInt32() // Good, language-neutral

public int ReadInt() // Bad, assumes C# meaning of "int"
 

(Notez que le type de retour n'est pas vraiment un nom - il est codé comme un type dans les métadonnées, il n'y a donc aucune confusion.)

7voto

Sorskoot Points 5882

L' objet de type est un alias pour le Système.Objet. L' objet de type est utilisé et affiché en tant que mot clé. Je pense qu'il a quelque chose à voir avec les anciens, mais c'est juste une hypothèse au hasard.

Jetez un oeil à cette MSDN page pour tous les détails.

Je préfère l'utilisation de la lowercase versions, mais pas pour des raisons spéciales. Tout simplement parce que la syntaxe est différente sur ces "de base" types et je n'ai pas à utiliser la touche maj enfoncée lors de la saisie...

6voto

John Nolan Points 16633

L'un est un alias à l'autre. C'est bas pour le style.

3voto

Colin Pickard Points 23922

string est un alias pour global::System.String, et object pour global::System.Object

Si vous avez using System; dans votre classe, String / string et Object / object sont fonctionnellement identiques et d'utilisation est une affaire de style.

(EDIT: retiré un peu trompeur citer, comme par Jon Skeet du commentaire)

0voto

abatishchev Points 42425

Il n'y a pas de différence. Il existe un certain nombre de types, appelés types de données primitifs, traités par le compilateur dans le style que vous avez mentionné.

Le style de dénomination en majuscule est la règle de dénomination ISO. C'est plus général, commun; force les mêmes règles de nommage pour tous les objets de la source sans exceptions, comme le compilateur C #.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X