我需要用通用的List返回类型定义一个委托,这样做的最佳方法是什么?
delegate List<T> TestDelegate(string arg1, string arg2);
那我想做
TestDelegate td = new TestDelegate(Method1);
或这个
TestDelegate td = new TestDelegate(Method2);
方法1和方法2的签名:
List<MyClass1> Method1(string arg1, string arg2)
List<MyClass2> Method2(string arg1, string arg2)
有没有办法做到这一点?
最佳答案
您可以使委托本身通用:
delegate List<T> TestDelegate<T>(string arg1, string arg2);
var td1 = new TestDelegate<MyClass1>(Method1);
var td2 = new TestDelegate<MyClass2>(Method2);
请注意委托声明中的其他
<T>
。