C# 条件运算符 - 这怎么错了?

C# Conditional Operator - How is this Wrong?

我这辈子都弄不明白自己做错了什么。我一直在使用 ?: 在我的项目的整个生命周期中,但突然间我一直被告知 "Only assignment, call, increment, decrement and new object expressions can be used" 但是如果我将完全相同的内容复制并粘贴到另一个文件中..我不会遇到这样的错误。

是吗? “1”:“1”;应该是最基本的说法,对吗?我的意思是它已经在其他地方做了,所以我有什么不明白的?

当您说您在别处使用条件运算符并且它工作正常时,也许您使用它的方式与您共享的屏幕截图不同。我这样说是因为 C# 不允许您按照您提到的方式进行操作:即

true ? "1" : "1";

这样想: 条件运算符本质上是一个 if-else。

if (true)
    "1"; //does not make sense, it appears to be string but the compiler needs to know what this is exactly
else
    "1"; //same comment as above

总而言之,您需要将该字符串“1”分配给一个变量,然后一切正常。

string str = true ? "1" : "1";