Ответ 1
Ваша первая форма работала в VS2015 Preview:
int i = 42;
var s = "\{i}";
Это скомпилировано и побежало для меня. ReSharper жаловался, но это другое дело.
Для окончательной версии С# это:
var s = $"{i}";
Я не могу заставить строку интерполяции работать. Последние новости от MS, которые я нашел, были
http://blogs.msdn.com/b/csharpfaq/archive/2014/11/20/new-features-in-c-6.aspx
Однако все, что сказано, не работает. Кто-нибудь знает, превратила ли строка интерполяция в VS 2015? Есть ли какая-либо документация об этом? Можно ли привести пример?
Например, ни один из этих форматов не работает (отредактировано):
int i = 42;
var s = "\{i}"; // correction after jon answer: this works!
var s = $"{i}"; // compiler error
var s = "{{i}}"; // no interpolation
редактировать VS 2015 CTP 6 (20.4.2015)
Окончательная версия
var s = $"{i}"
также поддерживается текущей версией Resharper ReSharper 9.1.20150408.155143
Ваша первая форма работала в VS2015 Preview:
int i = 42;
var s = "\{i}";
Это скомпилировано и побежало для меня. ReSharper жаловался, но это другое дело.
Для окончательной версии С# это:
var s = $"{i}";
Интерполяция строк приводит к VS 2015. Последний синтаксис (который не был готов для предварительного просмотра, но превратился в VS2015 CTP5):
string s = $"{i}";
Он также поддерживает результат am IFormattable
, используя класс FormattableString
:
IFormattable s = $"{i}";
Последняя конструкторская документация находится здесь: String Interpolation для С# (v2)
Вы можете проверить это онлайн, используя последнюю версию Roslyn с http://tryroslyn.azurewebsites.net. Вот конкретный пример.