C#:插值内的三元表达式无效[重复]

Posted

技术标签:

【中文标题】C#:插值内的三元表达式无效[重复]【英文标题】:C#: ternary expressions inside interpolation are invalid [duplicate] 【发布时间】:2018-02-12 23:46:55 【问题描述】:

我想在插值中插入一个三元表达式,如下所示:

var a = $"we have true ? "a":"b"";

编译使用的软件:

XBuild Engine Version 14.0
Mono, Version 5.2.0.215

我使用了xbuild Cmc.sln(Cmc 是我的解决方案名称)。之后我得到了错误(第 44 行是上面给出的 C# 代码):

Expr/Expression.cs(44,13): error CS8076: Missing close delimiter '' for interpolated expression started with ''.
Expr/Expression.cs(44,25): error CS1003: Syntax error, ':' expected
Expr/Expression.cs(44,25): error CS1733: Expected expression
Expr/Expression.cs(44,27): error CS1002: ; expected
Expr/Expression.cs(44,28): error CS1002: ; expected

为什么我会得到这个?我认为我的代码是有效的。

【问题讨论】:

是的,它是重复的...但是我搜索了C# tenary,但没有得到答案。所以我提出了一个新问题......对不起。 【参考方案1】:

试试:

$"we have (true ? "a":"b")";

【讨论】:

哇,谢谢!但为什么?你知道我没有括号的错误的原因吗? ***.com/questions/31844058/…中的解释适用 是的,我刚刚看过...不过还是谢谢。

以上是关于C#:插值内的三元表达式无效[重复]的主要内容,如果未能解决你的问题,请参考以下文章

VB.NET基于布尔表达式(三元)定义变量的简便方法[重复]

C#中的三元表达式

C# 三元表达式学习

C#中字符串插值内的字符串插值导致编译器错误[重复]

具有不同类型表达式的三元运算符[重复]

在 C# 三元运算符中给出错误:只有赋值、调用、递增、递减和新对象表达式可以用作语句