用于执行返回类型为Void的方法的条件C#三元运算符语句
我们如何使用coalescing运算符根据true或false值选择方法调用,如下所示:用于执行返回类型为Void的方法的条件C#三元运算符语句,c#,asp.net,conditional-statements,ternary-operator,C#,Asp.net,Conditional Statements,Ternary Operator,我们如何使用coalescing运算符根据true或false值选择方法调用,如下所示: Request.QueryString==“新建”?NewPage():OldPage() Request.QueryString==“黑色”?BlackMonie():Request.queysting==“白色”?WhiteMonie():Tacs() 使用stoage变量代替常见的合并运算符调用,如下所示: 字符串s=color==“r”?“红色”:“绿色” 你的问题不太清楚,但我假设NewPage(
字符串s=color==“r”?“红色”:“绿色” 你的问题不太清楚,但我假设
NewPage()
和OldPage()
都是void
方法
因此,如果不使用大量杂乱的代码返回需要调用的操作,就不能像您建议的那样使用三元运算符
而且,由于内置的if
,else
关键字与您想要的非常接近,因此尝试使其工作似乎没有什么好处
以下是建议您在标准if
代码中使用?:
运算符:
Request.QueryString == "new" ? NewPage() : OldPage();
if (Request.QueryString == "new") NewPage(); else OldPage();
这是7个字符的差异
我坚持使用标准的
if
方法。您只需要在三元运算符语句中使用正确的语法,如以下示例(请参阅MSDN ref):
希望这能有所帮助。非常感谢,您可以将这些方法分配给适当的委托类型,然后调用委托:
var someCall = Request.QueryString=="new" ? new Action(NewPage) : new Action(OldPage);
someCall();
但你真的不应该这样做。你是在问“三元”运算符
??
是合并运算符。这不是合并运算符,而是条件运算符。是的,它应该是三元运算符/条件运算符。谢谢Grantwiney和Enigmativity以及所有纠正我的人。可能是
var someCall = Request.QueryString=="new" ? new Action(NewPage) : new Action(OldPage);
someCall();