当前位置: 首页 > 知识库问答 >
问题:

使用条件运算符的C#插值字符串[重复]

红甫
2023-03-14

我试图在插值字符串中使用条件操作符,但是因为它有一个冒号,编译器认为冒号后面是一个格式字符串。

$"test {foo ? "foo is true" : "foo is false"}";

我如何使用这种类型的语句?我唯一想到的事情是这样的:

var fooString = foo ? "foo is true" : "foo is false";
$"test {fooString}";

共有2个答案

田琛
2023-03-14
$"test {(foo ? "foo is true" : "foo is false")}";   

括号内的代码返回一个变量,这是大括号内唯一允许的东西。冒号':'是字符串插值中的特殊字符,因此需要加括号。

岳嘉石
2023-03-14

您需要将字符串放在{}内的括号中,因此:{(1==1?"yes":"no")}

 类似资料:
  • 我想创建一个日期时间字符串,但添加CET/CEST,具体取决于是否夏时制。 因此,如果返回true,则附加“CEST”字符串,如果不是,则仅附加“CET”。 有没有简单/快捷的方法来做这件事?

  • C++ 运算符 Exp1 ? Exp2 : Exp3; 其中,Exp1、Exp2 和 Exp3 是表达式。请注意冒号的使用和位置。? : 表达式的值取决于 Exp1 的计算结果。如果 Exp1 为真,则计算 Exp2 的值,且 Exp2 的计算结果则为整个 ? : 表达式的值。如果 Exp1 为假,则计算 Exp3 的值,且 Exp3 的计算结果则为整个 ? : 表达式的值。 ? 被称为三元运

  • 为什么我不能在c#-6字符串插值中使用内联条件运算符,而不将其括在括号中? 以及错误: 如您所见,解析器似乎遇到了困难。这是一个错误,还是字符串插值机制的一个特性?

  • 问题内容: 我想知道为什么以下程序会抛出NPE 而这 不。当然,这是一个优先级问题,我很好奇串联的工作原理。 问题答案: 这是理解运算符优先级的重要性的一个示例。 您需要括号,否则解释如下: 有关运算符及其优先级的列表,请参见此处。另请注意该页面顶部的警告: 注意:甚至有可能混淆时,请使用显式括号。

  • 我在条件运算符的true子句中得到了未定义属性的意外行为: 示例:Javascript: 不停摆弄 预期的行为是获取一个日志条目,上面写着"未定义,而是抛出了一个错误:。怎么会这样,对象被选中,它永远不会执行htis coe路径。一个工作示例是: 不停摆弄