En C# 6 hay una nueva característica: cadenas interpoladas. Estos le permiten poner expresiones directamente en el código.
En lugar de confiar en los índices:
string s = string.Format("Adding \"{0}\" and {1} to foobar.", x, this.Y());lo anterior se convierte en:
string s = $"Adding \"{x}\" and {this.Y()} to foobar.";Sin embargo, tenemos muchas cadenas en varias líneas que usan cadenas textuales (principalmente declaraciones SQL) como esta:
string s = string.Format(@"Result... Adding ""{0}"" and {1} to foobar: {2}", x, this.Y(), x.GetLog());Revertir estos a cadenas regulares parece complicado:
string s = "Result...\r\n" + $"Adding \"{x}\" and {this.Y()} to foobar:\r\n" + x.GetLog().ToString();¿Cómo usar cadenas textuales e interpoladas juntas?
Puede aplicar los prefijos $ y @ a la misma cadena:
string s = $@"Result... Adding ""{x}"" and {this.Y()} to foobar: {x.GetLog()}"; Desde que se introdujeron en C# 6 , las cadenas textuales interpoladas tenían que comenzar con los tokens $@ , pero a partir de C# 8, puede usar $@ o @$ .