我们如何使用合并运算符来选择方法调用,具体取决于true或false值,如下所示:
而不是使用stoage变量的公共合并运算符调用,如下所示: string s = color ==" r"? "红色" :" Green";
答案 0 :(得分:4)
您的问题并未过分明确,但我认为NewPage()
和OldPage()
都是void
方法。
所以,你不能像你一样提出使用三元运算符,而不会进入很多混乱的代码,这些代码会返回需要调用的动作。
由于内置的if
,else
关键字与您想要的非常接近,因此尝试使其工作似乎没什么好处。
以下是?:
运算符与标准if
代码的建议用法:
Request.QueryString == "new" ? NewPage() : OldPage();
if (Request.QueryString == "new") NewPage(); else OldPage();
这7个字符的区别。
我坚持使用标准if
方法。
答案 1 :(得分:1)
你可以将这些方法分配给适当的委托类型,然后调用委托:
var someCall = Request.QueryString=="new" ? new Action(NewPage) : new Action(OldPage);
someCall();
但你真的不应该。
答案 2 :(得分:0)
您只需在三元运算符语句中使用正确的语法,如下面的示例所示(请参阅MSDN ref https://msdn.microsoft.com/en-us/library/zakwfxx4%28v=vs.90%29.aspx):
string _test = (Request.QueryString=="new")? NewPage() : OldPage() ;
希望这可能会有所帮助。最好的问候,