gpt4 book ai didi

C# + 重写委托(delegate)

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

我有一些代码正在使用我无法绕过的第三方库。这个库提供了一些我需要的辅助功​​能。此时,我的代码是这样设置的:

static Engine engine = new Engine();

static void Main(string[] args)
{
engine.Execute(MyCode);
}

private static void MyCode()
{
// my code goes here
}

这是我的挑战:我必须在 MyCode 可以使用它之前实例化一些代码,因为该实例化必须访问数据库并且花费的时间超过 Engine 允许的阈值。我不能使用静态变量,因为需要多个实例。这基本上意味着,我想要这样的东西:

static Engine engine = new Engine();

static void Main(string[] args)
{
MyClass c = new MyClass();
c.Initialize(); // This is the db call

engine.Execute(MyCode); // This line is the problem
}

private static void MyCode(MyClass c)
{
// my code goes here
c.DoStuff();
}

我的问题是,我基本上需要创建一个带参数的重载方法。但是,第三方库中的Execute方法不让我这样做。是否有一些我缺少的 C# 语法方式可以做到这一点?

最佳答案

您正在寻找 lambda 表达式:

engine.Execute(() => MyCode(c));

关于C# + 重写委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56635552/

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