C# - 运算符: ?- 是否可以向函数传递某些内容或任何内容

本文关键字:任何内 函数 运算符 是否 可以向 | 更新日期: 2023-09-27 17:57:09

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

这是关于替换 if 的问号。

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

我可以写一些东西([NOTHING])来不向函数传递任何参数并能够调用doSomething()吗?

C# - 运算符: ?- 是否可以向函数传递某些内容或任何内容

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

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

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