C# - 运营商:? - 是否可以将某些内容传递给函数?

时间:2016-07-14 17:03:47

标签: c#

我知道还有其他方法可以做我需要做的事情。我只是想知道是否可以做到。

关于替换if else的问号。

public void doSomething() { ...... }
public void doSomething(int i) { ...... }
public void f(int i)
{
    doSomething( i > 0 ? [NOTHING] : i ); 
}

我能写一些内容([NOTHING]的内容)不将任何参数传递给函数并且能够调用doSomething()吗?

1 个答案:

答案 0 :(得分:6)

不。您应该使用标准if..else,或者如果doSomething返回某些内容,您可以通过这种方式重写它。

i > 0 ? doSomething() : doSomething(i);

三元的结果必须兼容。方法调用由编译器烘焙,以了解要跳转到的指令。三元运算符无法重写。