我会尽量保持简单。我有一个委托DEL
,它是void()
(没有参数)。我有一个函数FUNC(int)
。我有两个变量A和B.我希望能够执行A()
并且它将运行FUNC(10)
,并且能够执行B()并且它将运行FUNC(43)
。我知道我可以让代理人void(int)
,但我也有一个函数FUNC2(int, int)
。以及将运行FUNC2(21,6)
的变量C.我需要A,B和C都是相同类型的变量。
答案 0 :(得分:2)
听起来你有这个
public delegate void DEL();
public class MyClass
{
public static void FUNC(int value)
{
}
public static void FUNC2(int value1, int value2)
{
}
}
您需要声明变量A
,B
和C
并将其初始化为某种委托类型,以便他们调用FUNC(10)
,FUNC(43)
和{调用时分别为{1}}。
FUNC2(21, 6)
A
DEL A = () => MyClass.FUNC(10);
B
并且DEL B = () => MyClass.FUNC(43);
C
DEL C = () => MyClass.FUNC2(21, 6);
,A
和B
都属于C
您也可以将其表达为:
DEL
或
DEL A = new DEL(() => MyClass.FUNC(10));
或只是
DEL A = new DEL(CallFUNCWithValue10);
public static void CallFUNCWithValue10()
{
MyClass.FUNC(10);
}