1
我希望能夠將方法鏈接到所有類型的委託。我試圖用refelection.emit
做到這一點,並將動態方法與delagate的佔用空間相鏈接,將其添加到委託中,並讓此動態方法使用所有參數調用常規函數。但我希望有一個easyer方式來做到這一點。鏈接一般方法委託
(我沒有包括reflection.emit
代碼becouse是不是我想幫助,這仍然是一個原始試)
這是我想要得到結果的一個例子:
public class FooClass
{
public delegate string MyFirstDelegate(string input1, string input2);
public delegate int MySecondDelegate(int input1, string input2, short input3);
public static MyFirstDelegate firstDelegate = null;
public static MySecondDelegate SecondDelegate = null;
private static string FirstMethod(string input1, string input2)
{
return input1 + input2;
}
private static int SecondMethod(int input1, string input2, short input3)
{
return input1 + Convert.ToInt32(input2) + input3;
}
private static object ThirdMethod(params object[] inputs)
{
//do some magic and return result
}
public static void Main()
{
firstDelegate = FirstMethod;
SecondDelegate = SecondMethod;
string result = firstDelegate("1", "2");
int result2 = SecondDelegate(1, "3", 3);
//obviously this does not work, but is there a way to link this method to the delegate?
firstDelegate = ThirdMethod;
SecondDelegate = ThirdMethod;
string result3 = firstDelegate("1", "2");
int result4 = SecondDelegate(1, "3", 3);
}
}