793 votes

La Plupart Des Attributs Utiles

Je sais que les attributs sont extrêmement utiles. Il y a quelques prédéfinis tels que [Browsable(false)] qui vous permet de masquer les propriétés dans l'onglet propriétés. Voici une bonne question en expliquant attributs: .NET: Ce sont des attributs?

Quels sont les attributs prédéfinis (et leurs noms) vous avez réellement l'utiliser dans vos projets?

681voto

Vivek Points 7254

[DebuggerDisplay] peut être vraiment utile pour voir rapidement personnaliser la sortie d'un Type lorsque vous passez la souris sur l'instance du Type au cours de débogage. exemple:

[DebuggerDisplay("FirstName={FirstName}, LastName={LastName}")]
class Customer
{
    public string FirstName;
    public string LastName;
}

C'est la façon dont il devrait se regarder dans le débogueur:

alt text

Aussi, il est important de mentionner que, [WebMethod] d'attribut avec CacheDuration de la propriété peut éviter l'exécution de la méthode de service web.

275voto

Dan Herbert Points 38336

System.Obsolete est l'un des attributs les plus utiles dans le cadre, à mon avis. La possibilité d'élever un avertissement au sujet de code qui ne devrait plus être utilisée est très utile. J'aime avoir un moyen de dire aux développeurs que quelque chose ne devrait plus être utilisée, ainsi que d'avoir une façon d'expliquer le pourquoi et le point de la meilleure/nouvelle manière de faire quelque chose.

L' Conditional attribute est très pratique aussi pour le debuggage. Il vous permet d'ajouter des méthodes dans votre code à des fins de débogage qui ne sera pas compilé lorsque vous construisez votre solution pour la libération.

Ensuite, il ya beaucoup d'attributs spécifiques à des Contrôles Web que je trouve utile, mais ceux qui sont plus spécifiques et n'ont pas du tout les utilisations à l'extérieur de l'élaboration de contrôles serveur à partir de ce que j'ai trouvé.

206voto

Shog9 Points 82052

[Drapeaux] est assez pratique. Sucre syntaxique pour être sûr, mais encore assez jolie.

[Flags] 
enum SandwichStuff
{
   Cheese = 1,
   Pickles = 2,
   Chips = 4,
   Ham = 8,
   Eggs = 16,
   PeanutButter = 32,
   Jam = 64
};

public Sandwich MakeSandwich(SandwichStuff stuff)
{
   Console.WriteLine(stuff.ToString());
   // ...
}

// ...

MakeSandwich(SandwichStuff.Cheese 
   | SandwichStuff.Ham 
   | SandwichStuff.PeanutButter);
// produces console output: "Cheese, Ham, PeanutButter"


Leppie rappelle quelque chose que je n'avais pas réalisé, et qui plutôt amortit mon enthousiasme pour cet attribut: il n'est pas de demander au compilateur de permettre à peu les combinaisons de valeurs valides pour l'énumération des variables, le compilateur permet ce pour les énumérations, peu importe. Mon C++ arrière-plan montrant à travers... soupir

178voto

Blair Conrad Points 56195

J'aime [DebuggerStepThrough] à partir du Système.Diagnostics.

C'est très pratique pour éviter de plonger dans ceux d'une ligne de ne rien des méthodes ou des propriétés (si vous êtes forcés de travailler dans un début .Net sans détection automatique de propriétés). Mettre l'attribut sur une méthode courte ou le getter ou un setter de la propriété, et que vous allez voler droit, même en appuyant sur "étape" dans le débogueur.

138voto

wprl Points 6139

Pour ce que ça vaut, voici une liste de tous les .NET attributs. Il en existe plusieurs centaines.

Je ne sais pas à propos de quelqu'un d'autre mais j'ai de graves RTFM!

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