803 Stimmen

Nützlichste Attribute

Ich weiß, dass Attribute äußerst nützlich sind. Es gibt einige vordefinierte Attribute wie [Browsable(false)] mit dem Sie Eigenschaften auf der Registerkarte "Eigenschaften" ausblenden können. Hier ist eine gute Frage zur Erklärung von Attributen: Was sind Attribute in .NET?

Welche vordefinierten Attribute (und deren Namespace) verwenden Sie tatsächlich in Ihren Projekten?

687voto

Vivek Punkte 16076

[DebuggerDisplay] kann sehr hilfreich sein, um schnell die benutzerdefinierte Ausgabe eines Typs zu sehen, wenn Sie während des Debuggens mit der Maus über die Instanz des Typs fahren:

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

So sollte es im Debugger aussehen:

alt text

Es ist auch erwähnenswert, dass [WebMethod] Attribut mit CacheDuration Eigenschaft kann die unnötige Ausführung der Webdienstmethode vermeiden.

274voto

Dan Herbert Punkte 94074

System.Obsolete ist meiner Meinung nach eines der nützlichsten Attribute des Frameworks. Die Möglichkeit, eine Warnung über Code auszugeben, der nicht mehr verwendet werden sollte, ist sehr nützlich. Ich liebe die Möglichkeit, Entwicklern mitzuteilen, dass etwas nicht mehr verwendet werden sollte, und eine Möglichkeit zu haben, zu erklären, warum das so ist, und auf einen besseren/neuen Weg hinzuweisen, etwas zu tun.

El Conditional attribute ist auch für die Fehlersuche sehr nützlich. Damit können Sie Ihrem Code zu Debug-Zwecken Methoden hinzufügen, die nicht kompiliert werden, wenn Sie Ihre Lösung für die Veröffentlichung erstellen.

Dann gibt es eine Reihe von Attributen, die für Web Controls spezifisch sind und die ich nützlich finde, aber die sind eher spezifisch und haben keine Verwendung außerhalb der Entwicklung von Server Controls, soweit ich das herausgefunden habe.

208voto

Shog9 Punkte 151504

[Flags] ist ziemlich praktisch. Syntaktischer Zucker, um sicher zu sein, aber immer noch ziemlich nett.

[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 weist auf etwas hin, das mir nicht bewusst war und das meine Begeisterung für dieses Attribut etwas dämpft: Es gibt no den Compiler anweisen, Bitkombinationen als gültige Werte für Aufzählungsvariablen zuzulassen, erlaubt der Compiler dies für Aufzählungen trotzdem. Mein C++-Hintergrund, der durchscheint... seufz.

179voto

Blair Conrad Punkte 217777

Ich mag [DebuggerStepThrough] von System.Diagnostik .

Es ist sehr praktisch, um zu vermeiden, dass man in diese einzeiligen Methoden oder Eigenschaften hineingerät (wenn man gezwungen ist, in einem frühen .Net ohne automatische Eigenschaften zu arbeiten). Legen Sie das Attribut auf eine kurze Methode oder den Getter oder Setter einer Eigenschaft, und Sie werden direkt vorbei fliegen, selbst wenn Sie im Debugger auf "step into" klicken.

138voto

wprl Punkte 23142

Was auch immer es wert ist, hier ist eine Liste aller .NET-Attribute . Es gibt mehrere hundert.

Ich weiß nicht, wie es den anderen geht, aber ich habe noch einiges an RTFM zu tun!

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X