2009-04-20 6 views
2

Quels sont les avantages des attributs par rapport à l'utilisation des commentaires (ou des commentaires xml au niveau de la signature)? Je me souviens avoir vu un fil dans la section C# de ce site quelque part, mais je ne le trouve pas maintenant.Attributs vs commentaires

Aussi, est-il possible d'appliquer un attribut à un paramètre spécifique dans une méthode (c'était une question d'entrevue que j'ai lue quelque part)?

Répondre

4

Les commentaires sont juste pour le bénéfice des développeurs, afin qu'ils puissent voir quelles sont les classes et les méthodes.

Les attributs sont utiles pour la solution que vous développez, car ils vous permettent de décrire comment travailler avec la classe à laquelle vous ajoutez des attributs.

Oui, vous pouvez utiliser des attributs par rapport à des paramètres, mais dans mon expérience, cela rend le code compliqué, pensez à refondre afin que vos paramètres puissent être groupés dans une structure ou une classe.

est ici un lien sur les attributs:

http://en.csharp-online.net/Attributes

Hope this helps

1

Attributes est accessible à l'exécution, ce qui n'est pas le cas des commentaires.

En fait, les attributs et les commentaires sont deux choses totalement différentes, et servent deux objectifs totalement différents.

Commentaires visent à fournir des conseils au programmeur lecture de votre code, alors que les attributs visent à fournir des conseils au compilateur/runtime « lire » votre code ..

2

Je ne comprends pas comment les attributs et les commentaires sont liés; Les attributs ajoutent certaines fonctionnalités à une classe/un objet, tandis que les commentaires sont destinés à être de la documentation en ligne.

Il est possible de faciliter l'ajout de métadonnées à l'aide d'attributs (par exemple, utiliser un attribut Author (nom de chaîne) pour désigner l'auteur d'une classe, etc.), facilitant ainsi l'extraction de ces métadonnées. ne vois pas la comparaison.

+0

Parfois, les attributs sont utilisés pour ajouter des informations à un objet, mais aucune fonctionnalité supplémentaire. Comme l'exemple auteur (nom de chaîne) que vous donnez. C'est la seule comparaison à laquelle je pense. – dotnetdev

1

Généralement, les attributs sont utilisés lorsque vous envisagez de traiter le code source par programmation (généralement avec la réflexion .NET). Pour faire de même avec les commentaires XML, vous devez avoir une convention spéciale pour le format de vos commentaires. le fichier source vous-même, et cette convention n'a pas pu être vérifiée facilement au moment de la compilation, comme le sont les attributs.

1

Les attributs personnalisés sont destinés à être consultés lors de l'exécution en utilisant la réflexion. Ils peuvent être appliqués aux paramètres de méthode ainsi qu'aux paramètres de type générique, aux types de retour de méthode, aux assemblys, aux déclarations de type, aux membres de type et aux modules.

1

De manière générale, vous ne pouvez pas comparer les attributs d'un commentaire XML. Ces derniers n'ont absolument rien à voir avec le code, alors que les attributs restent dans l'assemblage compilé dans la section des métadonnées.

Quant à la deuxième partie de votre question, cela est possible en effet:

[return:MySecondAttribute] void Foo([MyAttribute] int bar) 

Voici un MySecondAttribute est appliqué à la valeur de retour et MyAttribute est appliqué au paramètre bar. Remplacez return: par assembly: pour appliquer un attribut au niveau de l'assemblage.