Строковая интерполяция в С# 6 позволяет мне написать:
decimal m = 42.0m;
string x = $"The value is {m}";
Однако очень распространенный вариант использования форматирования строк - это указать язык, используемый для форматирования значений. Скажем, мне нужно использовать InvariantCulture
для операции форматирования выше, для чего это синтаксис?
Это обсуждение предполагает, что я должен это сделать:
string x = INV($"The value is {m}");
Где INV определяется как
public static string INV(IFormattable formattable)
{
return formattable.ToString(null, System.Globalization.CultureInfo.InvariantCulture);
}
Однако это не работает. Он компилируется, но он оставляет мою программу зависающей в cmd.exe при запуске - как будто klr.exe, который, как я предполагаю, вызывается, зависает (ошибка компилятора?)
Это проект консоли ASP.NET 5 в VS15 CTP 6.