【问题标题】:C# - Why can't I use ternary operation inside string? [duplicate]C# - 为什么我不能在字符串中使用三元运算符? [复制]
【发布时间】:2025-12-09 14:25:02
【问题描述】:

我正在努力写作

$"This is { awesomeEnough ? "awesome" : "not awesome"}"

但我收到编译器错误

CS1003 语法错误,应为“:”

是预期的行为还是错误?

【问题讨论】:

  • : 将表达式与插值字符串中的格式分隔开来,因此您必须通过将表达式放在括号 $"This is { (awesomeEnough ? "awesome" : "not awesome")}" 内来强制它不认为它是分隔符

标签: c# string formatting ternary-operator c#-6.0


【解决方案1】:

操作员优先级。括号应该可以解决问题

$"This is { (awesomeEnough ? "awesome" : "not awesome") }"

【讨论】:

  • 正要说这个,好解决!
  • 原因不是运算符优先级 - 只是冒号被解释为格式说明符的分隔符