Best Practices für die Verwendung von @ in C #

8

Während ich ein Buch über C # gelesen habe, bin ich auf einen Code gestoßen, der das @ verwendet, um zu "überladen" oder ein C # -Schlüsselwort als Kennung zu verwenden. Ich vermute, das ist keine gute Praxis, da es zu Zweideutigkeiten führt. Habe ich Recht, dies zu denken, oder gibt es Zeiten, in denen dies verwendet werden sollte?

    
Scott Davies 19.07.2009, 10:09
quelle

8 Antworten

18

In der Tat lohnt es sich fast immer, dies zu vermeiden. Die wichtigste gültige Zeit, die es nützlich sein könnte, ist, wenn es um eine externe Bibliothek (aus einer anderen Sprache) mit einer Klasse / etc geht, die zufällig ein C # -Schlüsselwort ist, aber ich gebe zu, dass ich nie hatte dieses Problem in der Realität. Es hilft, dass C # Ihnen erlaubt, Methodenargumentnamen beim Überschreiben / Implementieren von Schnittstellen umzubenennen, so dass ein gemeinsamer Satz von Fällen vermieden wird.

Eine andere (wohl faule) Verwendung ist die Code-Generierung; Wenn Sie Felder / Variablen / etc immer mit @theName voranstellen, müssen Sie sich nicht um spezielle Fälle kümmern. Persönlich vergleiche ich einfach mit einer Liste von C # -Schlüsselwörtern / kontextbezogenen Schlüsselwörtern und füge etwas wie Unterstreichung hinzu.

Die andere Verwendung des @ -Zeichens (wörtliche Zeichenfolgenliterale) ist @ "viel nützlicher".

    
Marc Gravell 19.07.2009, 10:12
quelle
17

Ich habe es in asp.net MVC Ansichten verwendet, wo Sie eine CSS-Klasse mit einem HtmlHelper definieren.

%Vor%     
David 19.07.2009 10:16
quelle
4

Ich halte es für eine schlechte Idee, Schlüsselwörter als Variablennamen zu reservieren. IMHO macht es den Code weniger lesbar. Obwohl es einige Fälle gibt, in denen es nützlich sein könnte. Zum Beispiel könnten Sie in einer ASP.NET MVC View schreiben:

%Vor%     
Darin Dimitrov 19.07.2009 10:16
quelle
4

Wie andere gezeigt haben, kann @ -quoting bei Strings sehr nützlich sein. Hier sind einige Beispiele:

%Vor%     
Martin Liversage 19.07.2009 10:36
quelle
1

Ich habe es nur benutzt und gesehen, dass es nur mit den Strings verwendet wurde, wie:

%Vor%     
TheVillageIdiot 19.07.2009 10:12
quelle
1

Wusste nie darüber, aber von dem, was du sagst, würde ich es vermeiden.

Ich verwende @ in C # nur für vorformatierte Strings.

%Vor%     
Finglas 19.07.2009 10:13
quelle
1

Sie können alles vermeiden, was zu Verwirrung führt. : -)

Der einzige Ort, an dem ich @ verwende, ist Strings.

Von MSDN: Der Vorteil von @ -Quoten ist, dass Escape-Sequenzen nicht verarbeitet werden. So kann beispielsweise ein vollqualifizierter Dateiname einfach geschrieben werden:

@"c:\Docs\Source\a.txt" // rather than "c:\Docs\Source\a.txt"

    
chikak 19.07.2009 10:21
quelle
0

Ich vermeide es, außer mit Erweiterungsmethoden, wo ich denke, dass es Lesbarkeit hilft:

%Vor%     
Gregory Higley 19.07.2009 10:17
quelle

Tags und Links