2015-01-04 2 views
33

Non riesco a far funzionare l'interpolazione delle stringhe. Ultime news da MS ho trovato è statoQual è il formato finale per l'interpolazione delle stringhe in VS 2015?

http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx

Tuttavia tutto ciò che è detto che v'è non di lavoro. Qualcuno sa se l'interpolazione delle stringhe sia entrata in VS 2015? C'è qualche documentazione a riguardo? Puoi dare un esempio?

Per esempio, nessuno di questi formati di lavoro (editati):

int i = 42; 
var s = "\{i}"; // correction after jon's answer: this works! 
var s = $"{i}"; // compiler error 
var s = "{{i}}"; // no interpolation 

modifica su VS 2015 CTP 6 (20.4.2015)

La versione finale è

var s = $"{i}" 

supportato anche dalla versione corrente del Resharper ReSharper 9.1.20 150408.155143

risposta

49

tua prima forma fatto lavoro in Anteprima VS2015:

int i = 42; 
var s = "\{i}"; 

Che compilato ed ha funzionato per me. ReSharper si è lamentato, ma è diverso.

Per la finale rilascio di C#, è:

var s = $"{i}"; 
+0

confermato, è esattamente come dici tu. grazie! – citykid

+0

sembra che l'intellisense promesso non funzioni ancora. – citykid

+1

corretto; ecco le ultime descrizioni delle caratteristiche PDF per riferimento (vedi Sezione 5): https://www.codeplex.com/Download?ProjectName=roslyn&DownloadId=930852 – Gigi

13

String interpolazione è rendere al VS 2015. La sua ultima sintassi (che non era pronto per l'anteprima, ma ne fece VS2015 CTP5) è questo:

string s = $"{i}"; 

supporta inoltre sono IFormattable risultato utilizzando la classe FormattableString:

IFormattable s = $"{i}"; 

L'ultima documentazione di progetto è qui: String Interpolation for C# (v2)

è possibile verificare che on-line utilizzando la versione più recente Roslyn con http://tryroslyn.azurewebsites.net. Here's the specific example.

+0

grazie per la tua risposta utile e informativa. YouCast è bello ;-) – citykid

+0

@citykid grazie. :) – i3arnon