webentwicklung-frage-antwort-db.com.de

Verwenden von Variablen in Zeichenfolgen

In PHP Ich kann Folgendes tun:

$name = 'John';
$var = "Hello {$name}";    // => Hello John

Gibt es ein ähnliches Sprachkonstrukt in C #?

Ich weiß, dass es String.Format(); gibt, aber ich möchte wissen, ob dies möglich ist, ohne eine Funktion/Methode für den String aufzurufen.

71
thwd

In C # 6 können Sie String-Interpolation verwenden:

string name = "John";
string result = $"Hello {name}";

Die Syntaxhervorhebung in Visual Studio macht es gut lesbar und alle Token werden überprüft.

182
Fenton

Diese Funktionalität ist in C # 5 oder niedriger nicht integriert.
Update: C # 6 unterstützt jetzt String-Interpolation, siehe neuere Antworten.

Der empfohlene Weg dies zu tun wäre mit String.Format:

string name = "Scott";
string output = String.Format("Hello {0}", name);

Ich habe jedoch eine kleine Open-Source-Bibliothek namens SmartFormat geschrieben, die String.Format So erweitert, dass benannte Platzhalter (über Reflektion) verwendet werden können. Sie könnten also Folgendes tun:

string name = "Scott";
string output = Smart.Format("Hello {name}", new{name}); // Results in "Hello Scott".

Hoffe du magst es!

78
Scott Rippey

Bis C # 5 (-VS2013) müssen Sie dafür eine Funktion/Methode aufrufen. Entweder eine "normale" Funktion wie String.Format oder eine Überladung des Operators +.

string str = "Hello " + name; // This calls an overload of operator +.

In C # 6 (VS2015) wurde die String-Interpolation eingeführt (wie in anderen Antworten beschrieben).

5
Anders Abel