我可以在 C# 6 中将多个语句放入一个内插字符串中吗?
Can I put multiple statements in a interpolated string in C# 6?
在Ruby中,我可以将多个语句放在一个内插字符串中,例如
puts "#{a = 1; b = 2; a + b;}"
或者我可以像这样把它们放在多行中:
puts "#{a = 1;
b = 2;
a + b;}"
我可以在 C# 6 中做同样的事情吗?我试过但失败了。下面是我的 C# 代码。
Console.WriteLine($@"haha
{int a = 1;
int b = 2;
a+b;}
heihei");
当我尝试 运行 C# 程序时,我得到:
CS1525 Invalid expression term 'int'
CS1073 Unexpected token 'a'
希望有人能帮忙。
您的字符串插值语句中不能有完整的代码块。只能在里面做评价。
所以这可行(将变量拉到外面):
int a = 1;
int b = 2;
Console.WriteLine($@"haha
{a+b}
heihei");
还有这个(只做评价):
Console.WriteLine($@"haha
{1+2}
heihei");
Ruby 与 C# 不同,在您的情况下,您在字符串插值中编写了完整代码,因此它不起作用。
Console.WriteLine($"Name = {name}, hours = {hours:hh}")
或
Console.WriteLine($@"haha {1+2} heihei");
供参考:Microsoft C#
在Ruby中,我可以将多个语句放在一个内插字符串中,例如
puts "#{a = 1; b = 2; a + b;}"
或者我可以像这样把它们放在多行中:
puts "#{a = 1;
b = 2;
a + b;}"
我可以在 C# 6 中做同样的事情吗?我试过但失败了。下面是我的 C# 代码。
Console.WriteLine($@"haha
{int a = 1;
int b = 2;
a+b;}
heihei");
当我尝试 运行 C# 程序时,我得到:
CS1525 Invalid expression term 'int'
CS1073 Unexpected token 'a'
希望有人能帮忙。
您的字符串插值语句中不能有完整的代码块。只能在里面做评价。
所以这可行(将变量拉到外面):
int a = 1;
int b = 2;
Console.WriteLine($@"haha
{a+b}
heihei");
还有这个(只做评价):
Console.WriteLine($@"haha
{1+2}
heihei");
Ruby 与 C# 不同,在您的情况下,您在字符串插值中编写了完整代码,因此它不起作用。
Console.WriteLine($"Name = {name}, hours = {hours:hh}")
或
Console.WriteLine($@"haha {1+2} heihei");
供参考:Microsoft C#