7
votes

Y a-t-il une différence entre [sérialisable] et [sérialisable ()] en C #?

J'ai heurté des exemples en utilisant l'une des deux notations. Je ne trouve rien à ce sujet ce qui dit lequel est le commun, pourquoi 2 notations sont autorisées et s'il y a en fait une différence subtile entre les deux.

Quelqu'un une idée?


1 commentaires

Bonne question .. toujours je me demandais moi-même.


3 Réponses :


6
votes

Les deux utilisent la valeur par défaut C'TOR, il n'y a pas de différence du tout.


0 commentaires

26
votes

Nope, pas de différence fonctionnelle.

Pourquoi les 2 styles différents, vous demandez? La première notation est autorisée pour la brièveté. La 2e notation est autorisée car certains attributs prennent des paramètres: xxx

Notez également que [Serializable] est vraiment juste à courte main pour [SerializAbleatTribute ()] - C # vous permet d'omettre le Suffixe d'attributs ainsi que la parens de constructeur vide.


0 commentaires

9
votes

Non, il n'y a pas de différence. [SERIALISABLE] est juste du sucre syntaxique pour [Serializable ()] car la syntaxe C # vous permet de manquer les crochets du constructeur s'il existe un constructeur d'attributs par défaut.

Notez que les deux sont vraiment syntaxiques Sugar pour [SerializableAttribute ()] en tant que déclarations d'attribut vous permet également de manquer le suffixe d'attributs.


0 commentaires