2017-03-10 3 views
0

Lets sagen, dass ich eine Zeichenfolge, die meist abgeschlossen ist. In der Mitte ist ein Eintrag, der variabel ist - zum Beispiel:Dynamische Variablen in Objekten

string speech = @"I am very"Variable"and I need some lighter clothes"

Angenommen, ich möchte nicht eine andere Zeichenfolge erstellen, der letzte Teil dieses Satzes zu handhaben, wie kann ich Platz eines von vielen Wörtern für "heiß" anstelle von Variable? so etwas wie diese

würde meine Pseudo-Theorie gehen:

string speech = @"I am very " + &antonym + " and I need some lighter clothes"; 
public string putTheSentenceTogether(string antonym) 
{ 
    return speech(antonym); 
} 

Kann dies in C# getan werden? Oder eine andere Art, die nicht erfordert, dass ich speech aufteilen?

+2

Haben Sie es versucht? Es gibt viele Möglichkeiten, eine Zeichenfolge in C# zu verketten. –

Antwort

4

C# 6.0 verwenden oder später versuchen:

string myAntonym = "hot"; 
string speech = $"I am very {myAntonym} and I need some lighter clothes"; 
+2

'string.format' ist nicht erforderlich mit' $ ' –

+0

Ist string.format nicht notwendig hier –

+0

Alte Gewohnheiten etc ... –

4

Wie über Sie

string speech = @"I am very {0} and I need some lighter clothes"; 
public string PutTheSentenceTogether(string antonym) 
{ 
    return string.Format(speech, antonym); 
} 

tun Sie können auch tun (in C# 6.0 dh VS 2015 und später)

public string PutTheSentenceTogether(string antonym) 
{ 
    return $"I am very {antonym} and I need some lighter clothes"; 
} 
+0

@ downvoter: vorsichtig zu erklären. –

2

Dies funktioniert mit String-Interpolation:

public string putTheSentenceTogether(string antonym) 
{ 
    return $"I am very {antonym} and I need some lighter clothes"; 
} 

Oder mit string.Format

public string putTheSentenceTogether(string antonym) 
{ 
    return string.Format("I am very {0} and I need some lighter clothes", antonym); 
} 

Sofern Sie die Zeichenfolge außerhalb des Verfahrens erklären wollen, könnten Sie tun

string speech = "I am very {0} and I need some lighter clothes"; 

public string putTheSentenceTogether(string antonym) 
{ 
    return string.Format(speech, antonym); 
} 
+1

Interpolation im ersten Beispiel muss ein '$' Symbol anstelle des '@' Symbols haben. –

+0

Whoops. Fett gefingert. Wird bearbeiten. Vielen Dank. – dstepan