C# 用三元条件运算符选择函数 我是C++的新手,来自C++背景。在C++中,我可以做这样的事情:< /P> int function1 (int a, int b, int c) { return ...; } int function2 (int a, int b, int c) { return ...; } // Then, somewhere else... bool condition = ...; int value = (condition ? function1 : function2)(3, 4, 5);

C# 用三元条件运算符选择函数 我是C++的新手,来自C++背景。在C++中,我可以做这样的事情:< /P> int function1 (int a, int b, int c) { return ...; } int function2 (int a, int b, int c) { return ...; } // Then, somewhere else... bool condition = ...; int value = (condition ? function1 : function2)(3, 4, 5);,c#,function,conditional-operator,c#-8.0,C#,Function,Conditional Operator,C# 8.0,它将调用function1或function2——具体取决于条件——并将指定参数传递给被调用的参数 我的问题是,C#(8.0)是否有类似的语法: 根据条件在两个函数之间进行选择,以及 只需要指定一次参数列表,并且 可以在一条可读性很强的语句中完成吗 如果可以,语法是什么 我唯一能想到的是和C++一样的语法,例如: int value = (condition ? function1 : function2)(3, 4, 5); ^^^^^^^^^^^^^^^^^^^^

它将调用
function1
function2
——具体取决于
条件
——并将指定参数传递给被调用的参数

我的问题是,C#(8.0)是否有类似的语法:

  • 根据条件在两个函数之间进行选择,以及
  • 只需要指定一次参数列表,并且
  • 可以在一条可读性很强的语句中完成吗
如果可以,语法是什么

我唯一能想到的是和C++一样的语法,例如:

int value = (condition ? function1 : function2)(3, 4, 5);
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
但它只是指向
^
ed部分,并给出了一个“预期的方法名”错误(当然这是有道理的)。我真的没有其他想法。

应该这样做

私有整数函数1(整数x,整数y,整数z)=>1;
私有整数函数2(整数x,整数y,整数z)=>2;
专用void main(字符串[]args)
{
布尔条件=真;
Func Func=条件?函数1:函数2;
func(1,2,3);
}

虽然有两个语句,但不确定是否可以像您要求的那样在一个语句中执行。

考虑
int value=(条件?(Func)function1:function2)(3,4,5)使其显式。副本解释了现有代码无法工作的原因。@mjwills谢谢!是的,被骗者还有我想要的一切,还有一个信息丰富的解释。