Mei*_*hes 2 c# string-interpolation c#-6.0
为什么我不能在ac#-6字符串插值中使用内联条件运算符而不将其包含在方括号中?
和错误:
如您所见,解析器似乎很困难。这是错误还是字符串插值机制的功能?
从MSDN(重点是我的):
Run Code Online (Sandbox Code Playgroud)$"{person.Name, 20} is {person.Age:D3} year {(p.Age == 1 ? "" : "s")} old."您不需要在包含的插值表达式中用引号引起来,因为插值的字符串表达式以$开头,并且编译器将包含的插值表达式作为平衡文本进行扫描,直到找到逗号,冒号或大括号为止。出于相同的原因,最后一个示例使用括号允许条件表达式
(p.Age == 1 ? "" : "s")位于插值表达式内部,而冒号无需启动格式说明。在包含的插值表达式之外(但仍在插值字符串表达式之内),您可以照常转义引号字符。
没有括号,解析器会将冒号之后的部分视为格式说明符(比较{person.Age:D3}上面示例的部分)。
| 归档时间: |
|
| 查看次数: |
1170 次 |
| 最近记录: |