una longitud interpolacion extraer ejemplos caracteres cadenas cadena c# string-interpolation c#-6.0

longitud - ¿Cuál es la cultura por defecto para la interpolación de cadenas C#6?



string format c# (1)

El uso de la interpolación de cadenas en C # se compila en una simple llamada a String.Format . Puedes ver con TryRolsyn que esto:

public void M() { string name = "bar"; string result = $"{name}"; }

Se compila en esto:

public void M() { string arg = "bar"; string text = string.Format("{0}", arg); }

Está claro que esto no utiliza una sobrecarga que acepta un proveedor de formato, por lo tanto, utiliza la cultura actual .

Sin embargo, puede compilar la interpolación en FormattbleString que mantiene el formato y los argumentos separados y pasa una cultura específica al generar la cadena final:

FormattableString formattableString = $"{name}"; string result = formattableString.ToString(CultureInfo.InvariantCulture);

Ahora ya que (como prefiera) es muy común utilizar InvariantCulture específicamente, hay una forma abreviada de eso:

string result = FormattableString.Invariant($"{name}");

En C # 6, ¿cuál es la cultura por defecto para la nueva interpolación de cadenas?

He visto informes contradictorios tanto de la cultura invariante como de la actual.

Me gustaría una respuesta definitiva y estoy cruzando los dedos por Invariant.