Was ist die Verwendung / Bedeutung des @ -Zeichens in Variablennamen in C #?
Entdeckte ich, dass Sie beginnen können, Ihre Variablen-name mit einem ' @ ' - Zeichen in C#.
In meinem C# - Projekt, das ich war, über einen web-service (ich fügte hinzu, ein web-Verweis auf mein Projekt), die in Java geschrieben wurde. Einer der interface-Objekte definiert, die in der WSDL hatte eine member-variable mit dem Namen "params". Offensichtlich ist dies ein reserviertes Wort in C#, so dass Sie nicht haben, können Sie eine Klasse mit einer Membervariable mit dem Namen "params". Das proxy-Objekt, das erzeugt wurde, enthielt eine Eigenschaft, die wie folgt aussah:
public ArrayList @params {
get { return this.paramsField; }
set { this.paramsField = value; }
}
Ich durchsuchte das VS 2008-c# - Dokumentation, aber konnte nichts finden. Auch Google-Suche hat nicht mir irgendwelche nützlichen Antworten. Also, was ist die genaue Bedeutung oder Verwendung des ' @ ' - Zeichen in eine variable/Eigenschaft name?
InformationsquelleAutor der Frage Remko Jansen | 2008-09-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Direkt aus der C# - ProgrammiersprachenspezifikationBezeichner (C#)
:
InformationsquelleAutor der Antwort Atif Aziz
Es ist einfach können Sie ein reserviertes Wort als Variablenname. IMHO nicht empfehlenswert (außer in Fällen, wie Sie haben).
InformationsquelleAutor der Antwort rslite
In C# das at-Zeichen (@) wird verwendet, um zu bezeichnen, Ausdrücke, die explizit halten sich nicht an die entsprechenden Regeln in der Sprache spec.
Speziell, es kann verwendet werden, für die Variablennamen, die Auseinandersetzung mit reservierten Schlüsselwörtern (z.B. können Sie keine Parameter, aber Sie können die Verwendung von @params stattdessen gleich mit aus/ref/andere keyword in der Sprachspezifikation). Zusätzlich kann es verwendet werden, für die ohne Umschreibung string-Literale; dies ist besonders relevant mit Pfad-Konstanten, z.B. statt
path = "c:\\temp\\somefile.txt"
schreiben Siepath = @"c:\temp\somefile.txt"
. Es ist auch wirklich nützlich für reguläre Ausdrücke.InformationsquelleAutor der Antwort Tomer Gabel
Im Gegensatz zu Perl-Siegel, ein
@
Präfix vor den Namen einer Variablen in C# hat keine Bedeutung. Wennx
ist eine variable, die@x
ist ein anderer name für die gleiche variable.Aber die
@
Präfix hat eine verwendenals Sie entdeckt habe - Sie können es verwenden, um zu klären, Variablen-Namen, C# sonst ablehnen als illegal.InformationsquelleAutor der Antwort Colonel Panic
Den
@
symbol ermöglicht Ihnen reservierte Schlüsselwörter für Variablen-Namen. wie@int
@string
@double
etc.Beispiel:
Der obige code funktioniert einwandfrei, aber unten wird nicht funktionieren:
InformationsquelleAutor der Antwort Umar Abbas
Es einfach können Sie reservierte Wörter als Variablennamen. Ich wollte eine var namens
event
den anderen Tag. Ich fahre mit_event
statt, aber mein Kollege erinnerte mich daran, dass ich nur nennen es@event
statt.InformationsquelleAutor der Antwort Mark Embling
Anderen use-case ist in der extension-Methoden. Der erste, spezielle parameter unterschieden werden können, zu bezeichnen, seine wahre Bedeutung mit
@this
Namen. Ein Beispiel:InformationsquelleAutor der Antwort BartoszKP
Können, wenn wir uns ein keyword als name für einen Bezeichner, bekommen wir einen compiler-Fehler "Bezeichner erwartet, 'Bezeichner' ist ein Schlüsselwort"
Um diese Problem zu überwinden, den identifier-Präfix mit "@". Diese Bezeichner sind verbatim-IDS.
Das Zeichen @ ist eigentlich nicht Teil der id, also die Kennung sehen könnte, in anderen Sprachen als normale identifier ohne das Präfix
InformationsquelleAutor der Antwort
Können Sie es verwenden, um die Verwendung der reservierten Schlüsselwörter als Variablennamen wie
der compiler ignoriert die
@
und kompilieren Sie die variable alsint
es ist nicht eine gemeinsame Praxis zu nutzen, dachte
InformationsquelleAutor der Antwort Mina Gabriel