我知道还有其他方法可以做我需要做的事情。我只是想知道是否可以做到。
关于替换if else的问号。
public void doSomething() { ...... }
public void doSomething(int i) { ...... }
public void f(int i)
{
doSomething( i > 0 ? [NOTHING] : i );
}
我能写一些内容([NOTHING]的内容)不将任何参数传递给函数并且能够调用doSomething()吗?
答案 0 :(得分:6)
不。您应该使用标准if..else
,或者如果doSomething
返回某些内容,您可以通过这种方式重写它。
i > 0 ? doSomething() : doSomething(i);
三元的结果必须兼容。方法调用由编译器烘焙,以了解要跳转到的指令。三元运算符无法重写。