C# 方法在作为参数传入委托时返回泛型类型
我正试图“泛化”我们在系统中散布的一些代码 我想:C# 方法在作为参数传入委托时返回泛型类型,c#,generics,types,func,C#,Generics,Types,Func,我正试图“泛化”我们在系统中散布的一些代码 我想: 返回泛型类型 传入包含要调用的方法的某种委托 我对泛型很陌生,所以非常感谢您的帮助 下面是我的手指在空中的位置(!) public static T ReturnSingleObject(Func dynamicSignature) { T返回值; 服务参考wCFService; 尝试 { wCFService=newBusinessServiceClient(); returnValue=dynamicSignature(); //retur
public static T ReturnSingleObject(Func dynamicSignature)
{
T返回值;
服务参考wCFService;
尝试
{
wCFService=newBusinessServiceClient();
returnValue=dynamicSignature();
//returnValue=wCFService.AMETHOD(PARAM1,PARAM2);
返回值;
}
捕获(例外)
{
如果(wCFService!=null)wCFService.Abort();
投掷;
}
最后
{
如果(wCFService!=null)wCFService.Close();
}
}
看起来dynamicSignature函数缺少几个参数,因此需要添加这些参数。此外,还可以将return语句移到try块的底部,并将返回值初始化为默认值:
T returnValue = default(T);
...
try
{
...
returnValue = dynamicSignature(somestring, someint);
...
}
...
return returnValue;
一些细节:不要尝试。。。最后,您最好在调用dynamicSignature时使用(var WCFService=new BusinessServiceClient()){your code},因为您缺少字符串和int参数。我希望动态传递调用WCFService的任何方法并返回结果。
T returnValue = default(T);
...
try
{
...
returnValue = dynamicSignature(somestring, someint);
...
}
...
return returnValue;