2013-03-06 6 views
7

Ich denke, meine Frage ist das anders: What's the @ in front of a string in C#?Was ist @ vor einer Variablen/Bezeichner in C#?

ich in VB.net arbeiten, so dass diese in C# einige einfache Sache sein, aber ich bin mir nicht bewusst.

Ich habe den folgenden Code, wo ich 10 XML innerhalb einer String-Variable haben. Bitte Rat, was @ -Symbol vor dem claimsList String-Variable benötigt wird, wenn LoadXml Methode im Code-Schnipsel Aufruf unter:

private void UploadNewClaims(PMAUser grumble, string companyAbbreviation, string claimsList) 
{ 
    var claimDoc = new System.Xml.XmlDocument(); 
    claimDoc.LoadXml(@claimsList); 

Antwort

20

In diesem Fall ist es völlig unnötig, aber es ermöglicht Ihnen jedes Keyword als Bezeichner verwenden in C#. Es ändert nicht die Bedeutung des Bezeichners überhaupt oder wie es verwendet wird - es teilt nur dem Compiler mit, dass Sie nicht möchten, dass die folgenden Zeichen als Schlüsselwort erkannt werden.

Zum Beispiel:

string @int = "hello"; 
var @void = @int; 

es für eine Kennung claimsList verwenden lässt vermuten, dass wer auch immer es sie nicht versteht geschrieben. Die Tatsache, dass die Kennung für eine String-Variable ist ganz irrelevant hier.

Persönlich habe ich ziemlich viel nur verwendet immer die Funktion für Erweiterungsmethoden, wo ich bekannt wurden @this den ersten Parameter zu nennen:

public static void Foo(this Bar @this) 
{ 
    return @this.Baz() * 2; 
} 
+1

Nizza Erklärung .. – Smaug

+1

Ich stelle mir vor, dass die @ es ist, weil An einem Punkt war es ein Pfad-String-Literal wie @ "C: \ Pfad". Ich nehme an, dass die Person, die die Änderung vorgenommen hat, die @ "" -Syntax nicht verstanden hat und das @ an Ort und Stelle belassen hat, als sie geändert wurde, um eine Variable zu sein. – Grokys

+0

Und ich habe gegooglet, weil ich '@ this' als Parameter für eine Erweiterungsmethode hah gesehen habe. Hölle, das ist nützlich. Ein Punkt, der angezeigt, aber nicht geschrieben wird: 'Sie müssen @variable auch beim Aufruf verwenden, nicht nur für die Deklaration'. – C4u