C#:使用?:函数运算符
本文关键字:运算符 函数 使用 | 更新日期: 2023-09-27 18:27:54
我想问一个关于?条件运算符。该函数的常见语法如下(可在Microsoft网站上找到)
int input = Convert.ToInt32(Console.ReadLine());
string classify;
// if-else construction.
if (input < 0)
classify = "negative";
else
classify = "positive";
// ?: conditional operator.
classify = (input < 0) ? "negative" : "positive"; //<----
它通常在为变量赋值时使用,但我曾想过用它来运行函数。
int input = Convert.ToInt32(Console.ReadLine());
string classify;
// if-else construction.
if (input < 0)
RunScriptA();
else
RunScriptB();
// ?: conditional operator.
(input < 0) ? RunScriptA()" : RunScriptB(); //<----
拥有这种能力可以节省许多代码行。遗憾的是,我在尝试这个想法时出现了语法错误。所以我想知道我想要的在C#中是否可行,如果可行,怎么做?
祝大家圣诞快乐!
三元运算符应该返回一个值。因此,如果函数将返回相同类型的值,那么可以对函数使用三元运算符。
因此,如果去掉多余的引号,并假设您的两个函数返回的值与下面的情况相同,假设它们返回Action
,那么这是好的。
Action a = (input < 0) ? RunScriptA() : RunScriptB();
或者简单地说:
var a = (input < 0) ? RunScriptA() : RunScriptB();
对这类事情使用委托。你可以这样做:
Action a = (input < 0) ? RunScriptA : RunScriptB;
a();