1
我很好奇,如果有可能創建一個帶有隱式類型參數的委託方法。這是我想要完成的。這種事情不會爲我編譯,但它應該讓你知道我正在努力完成什麼。C#的委託方法可以採用隱式類型參數嗎?
這裏就是我想要使用委託調用函數:
class MyClass
{
ArrayList function1(int param1, int param2)
{
...do something...
}
ArrayList function2(string param3)
{
...do something...
}
}
而這裏的調用它們的類:
class MyOtherClass
{
delegate ArrayList delFunc(params object[] args);
myOtherClass()
{
MyClass myClassInstance = new myClass();
delFunc myDelFunc1 = myClassInstance.function1;
delFunc myDelFunc2 = myClassInstance.function2;
myDelFunc1(1,2);
myDelFunc2("hello world");
}
}
很顯然,在這個例子中,你只想實際調用所提供的功能。我實際上想要做的是創建一個包裝函數,它允許您提供一個函數作爲具有任何可能的參數列表的委託。
我能想出的唯一解決方案是使MyClass中的函數也參數列表。但是,這會讓任何直接調用這些函數的人感到困惑。這就是我的意思是:
class MyClass
{
ArrayList function1(params object[] args)
{
...do something...
}
ArrayList function2(params object[] args)
{
...do something...
}
}
現在它編譯,但我需要猜測,或閱讀評論,找出通到功能1和功能2。另外,它在編譯時曾經失敗,現在它在運行時失敗。一切都非常糟糕的事情......
我想可能有一些語法我失蹤了做這樣的事情
delegate ArrayList delFunc(MatchAnyArgumentSignature);
乾杯, 羅布
大,應該做的伎倆!順便說一句,是ArrayLists不推薦或什麼的? – Lockyer 2010-10-03 21:19:46
使用列表而不是ArrayList –
Maxem
2010-10-03 21:20:38
k,感謝您的幫助! – Lockyer 2010-10-03 21:22:20