c#字符连接符号$与三元运算符的问题

写代码中遇到这种问题,字符串处理符号$与三元运算符一起用出现了些许问题,如下:

 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")}");

不知道为什么内插表达式不能用冒号。

相关文章