使用Void返回类型执行方法的条件C#Ternary运算符语句

时间:2015-05-31 23:54:59

标签: c# asp.net conditional-statements ternary-operator

我们如何使用合并运算符来选择方法调用,具体取决于true或false值,如下所示:

  1. 的Request.QueryString =="新&#34 ;? NewPage():OldPage();
  2. 的Request.QueryString =="黑色&#34 ;? BlackMonie():Request.QueySTring ==" White"? WhiteMonie():TACS();
  3. 而不是使用stoage变量的公共合并运算符调用,如下所示: string s = color ==" r"? "红色" :" Green";

3 个答案:

答案 0 :(得分:4)

您的问题并未过分明确,但我认为NewPage()OldPage()都是void方法。

所以,你不能像你一样提出使用三元运算符,而不会进入很多混乱的代码,这些代码会返回需要调用的动作。

由于内置的​​ifelse关键字与您想要的非常接近,因此尝试使其工作似乎没什么好处。

以下是?:运算符与标准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() ;

希望这可能会有所帮助。最好的问候,