具有特定论点的代表

Delegates with specific arguments

我会尽量保持简单。我有一个委托 DEL,它是一个 void()(无参数)。我有一个函数 FUNC(int)。我有两个变量 A 和 B。我希望能够执行 A() 并且它将 运行 FUNC(10),并且能够执行 B() 并且它将 运行 FUNC(43)。我知道我可以让代表 void(int) 但我也有一个函数 FUNC2(int, int)。和一个将 运行 FUNC2(21,6) 的变量 C。我需要 A、B 和 C 都是同一类型的变量。

听起来你有这个

public delegate void DEL();

public class MyClass
{
    public static void FUNC(int value)
    {
    }

    public static void FUNC2(int value1, int value2)
    {
    }
}

并且您需要声明变量 ABC 并将其初始化为某种委托类型,以便它们调用 FUNC(10)FUNC(43)FUNC2(21, 6) 分别在调用时。

A

的代码
DEL A = () => MyClass.FUNC(10);

B

的代码
DEL B = () => MyClass.FUNC(43);

还有 C

的代码
DEL C = () => MyClass.FUNC2(21, 6);

ABC 都是 DEL

类型

您也可以将其表示为:

DEL A = new DEL(() => MyClass.FUNC(10));

DEL A = new DEL(CallFUNCWithValue10);

public static void CallFUNCWithValue10()
{
    MyClass.FUNC(10);
}

DEL A = CallFUNCWithValue10;