Вы не можете объявить переменную в выражении интерполяции строки.
Console.WriteLine($"{string bar = "hello"}"); // This gives error CS1525: Invalid expression term 'string'
Таким образом, вместо этого объявите ее вне интерполяции строки, и вы можете назначить ее в выражении интерполяциис выражением присваивания.
string bar;
Console.WriteLine($"{bar = "hello"}"); // This is OK
Console.WriteLine(bar);
Ваш конкретный пример:
string msg0, msg1;
Console.WriteLine($"0:{msg0 = message[0].ConvertToString()} 1:{msg1 = message[1].ConvertToString()}");
Console.WriteLine(msg0);
Console.WriteLine(msg1);
Бонусный совет : Однако вы можете использовать out
объявление переменной в выражении интерполяции. Область действия такая же, как и у линии (не как-то локально для выражения интерполяции). например:
class Program
{
static string Test(out string x, string y) {
return x = y;
}
static void Main(string[] args)
{
Console.WriteLine($"{Test(out string bar, "Hello")}");
Console.WriteLine(bar);
}
}