gpt4 book ai didi

C#变量=新函数(){};

转载 作者:可可西里 更新时间:2023-11-01 09:03:15 26 4
gpt4 key购买 nike

在 C# 中是否可以动态创建新函数来定义变量?

我知道

string getResult() {
if (a)
return "a";
return "b";
}
String result = getResult();

是可能的,但我正在寻找类似的东西

String result = new string getResult() {
if (a)
return "a";
return "b";
}

这可能吗?如果是这样,有人会示范吗?

编辑这是可能的

编辑:最终 - 解决方案

这是我野蛮破解的最终结果

Func<string> getResult = () =>
{
switch (SC.Status)
{
case ServiceControllerStatus.Running:
return "Running";
case ServiceControllerStatus.Stopped:
return "Stopped";
case ServiceControllerStatus.Paused:
return "Paused";
case ServiceControllerStatus.StopPending:
return "Stopping";
case ServiceControllerStatus.StartPending:
return "Starting";
default:
return "Status Changing";
}
};

TrayIcon.Text = "Service Status - " + getResult();

最佳答案

定义这样一个函数的一种方法:

Func<bool, string> getResult = ( a ) => {
if (a)
return "a";
return "b";
}

然后您可以调用:string foo = getResult( true );。作为委托(delegate),它可以在需要时存储/传递和调用。

例子:

string Foo( Func<bool, string> resultGetter ){
return resultGetter( false );
}

您也可以close围绕范围内的变量:

bool a = true;

Func<string> getResult = () => {
if (a)
return "a";
return "b";
}

string result = getResult();

关于C#变量=新函数(){};,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com