写代码中遇到这种问题,字符串处理符号$与三元运算符一起用出现了些许问题,如下:
1 using System; 2 namespace HelloWorld 3 { 4 class Program 5 { 6 static void Main(string[] args) 7 { 8 bool b = true; 9 string who = b ? "Tom" : "Jerry";10 Console.WriteLine($"Hello {who}");11 Console.ReadLine();12 }13 }14 }
上面代码没有任何问题,但是如果把第9行和第十行合并,
1 using System; 2 namespace HelloWorld 3 { 4 class Program 5 { 6 static void Main(string[] args) 7 { 8 Console.WriteLine($"Hello {b ? "Tom" : "Jerry"}"); 9 Console.ReadLine();10 }11 }12 }
内插表达式不能有冒号,必须用括号:
Console.WriteLine($"Hello {(b ? "Tom" : "Jerry")}");
不知道为什么内插表达式不能用冒号。