gpt4 book ai didi

c# - Func 作为类中的变量

转载 作者:行者123 更新时间:2023-12-05 00:19:02 34 4
gpt4 key购买 nike

我想使用一个函数作为我分配的变量。

像这样

类:

public class Func
{
public string Name { get; set; }
public string Content { get; set; }
public Function function { get; set; } //Not sure what type for a func
}

功能:

public void Click_Event(object sender,EventArgs e)
{
//Some code here.
}

要分配函数的列表:

List<Func> funcList = new List<Func>();
Func func = new Func();
func.Name = "Name";
func.Content = "Hello World";
func.function = Click_Event; //This is what I really want to do.
funcList.Add(func);

有什么办法可以实现吗?

已编辑

下面的一些评论说反射可能会导致性能问题,但我使用它并且目前没有看到任何缓慢的问题。我只在第一次启动应用程序时使用它。

这是我使用它的示例代码。

MethodInfo method = this.GetType().GetMethod("FuncName"); //Or using nameof
btnFunc.AddHandler(Button.ClickEvent, Delegate.CreateDelegate(Button.ClickEvent.HandlerType, this, method, false));

最佳答案

尝试使用委托(delegate):

A delegate is a data structure that refers to a static method or to a class instance and an instance method of that class.

https://learn.microsoft.com/en-us/dotnet/api/system.delegate?view=netframework-4.8

另一个要研究的选项是 ActionFunc

关于c# - Func 作为类中的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60199781/

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