gpt4 book ai didi

C# 委托(delegate)创建和激活

转载 作者:太空宇宙 更新时间:2023-11-03 20:40:38 24 4
gpt4 key购买 nike

我有两个功能:

double fullFingerPrinting(string location1, string location2, int nGrams)
double AllSubstrings(string location1, string location2, int nGrams)

我想进入一个循环并依次激活每个函数,并且在每个函数之后我还想打印函数的名称,我该怎么做?

最佳答案

  1. 定义您的函数通用的委托(delegate)类型。
  2. 为您的职能创建委托(delegate)集合
  3. 遍历集合,调用每个委托(delegate)并使用 Delegate.Method属性以获取方法名称。

示例(经过编辑以显示非静态函数委托(delegate)):

class Program
{
delegate double CommonDelegate(string location1, string location2, int nGrams);

static void Main(string[] args)
{
SomeClass foo = new SomeClass();

var functions = new CommonDelegate[]
{
AllSubstrings,
FullFingerPrinting,
foo.OtherMethod
};

foreach (var function in functions)
{
Console.WriteLine("{0} returned {1}",
function.Method.Name,
function("foo", "bar", 42)
);
}
}

static double AllSubstrings(string location1, string location2, int nGrams)
{
// ...
return 1.0;
}

static double FullFingerPrinting(string location1, string location2, int nGrams)
{
// ...
return 2.0;
}
}

class SomeClass
{
public double OtherMethod(string location1, string location2, int nGrams)
{
// ...
return 3.0;
}
}

关于C# 委托(delegate)创建和激活,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2927838/

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