相关疑难解决方法(0)

?没有其他部分的操作员

我用C#?运算符,当我有if语句影响一行,这一切都很好.但是让我说我​​有这个代码(使用经典的if语句):

if(someStatement)
{
    someBool = true;  //someBools value is unknown
}
else
{
    //Do nothing
}
Run Code Online (Sandbox Code Playgroud)

这可以通过以下方式在单线上实现:

someBool = (someStatement) ? true : someBool;
Run Code Online (Sandbox Code Playgroud)

但为什么我不能这样做:

someBool = (someStatement) ? true : ;
//or possibly
someBool = (someStatement) ? true;
Run Code Online (Sandbox Code Playgroud)

这有可能吗?如果是,使用一种方法比另一种方法有什么好处吗?如果没有,为什么你不能这样做?

c# theory conditional-operator

16
推荐指数
2
解决办法
2万
查看次数

是否可以在三元表达式上只放置一个选项?

我只是好奇这是否可能,或者是否有办法使其成为 C# 的有效语法:

expression == value ? /*do nothing here, or put some empty block like { ; } */ : SomeClass.SomeMethod();
Run Code Online (Sandbox Code Playgroud)

编辑:为了深入讨论和更多信息,我认为这个块会起作用(如果测试的字典键不存在,它会添加字典。否则,它将跳过):

(!packageDict.ContainsKey(desc)) ? packageDict.Add(desc, subtotal) : /*does nothing*/;
Run Code Online (Sandbox Code Playgroud)

c# syntax dictionary ternary-operator conditional-statements

7
推荐指数
2
解决办法
1万
查看次数