Lau*_*nce 0 c# generics interface
我有一个返回类型T的泛型方法.现在我想修改它,以便如果T碰巧实现接口I,则在对象上设置一个附加属性(即从I开始).
像这样的东西(但当然这不起作用):
public T MyMethod<T>()
{
T resultAsT = some function ....
var resultAsI = (resultAsT as I);
if (resultAsI != null)
{
resultAsI.PropertyOnlyAvailableInI = 99;
return resultAsI;
}
else
return resultAsT;
}
Run Code Online (Sandbox Code Playgroud)
这样的事情可能吗?
这应该工作:
public T MyMethod<T>()
{
T resultAsT = some function ....
var resultAsI = (resultAsT as I);
if (resultAsI != null)
{
resultAsI.PropertyOnlyAvailableInI = 99;
}
return resultAsT;
}
Run Code Online (Sandbox Code Playgroud)
除了之外T,该方法不能返回任何内容,因此您应该始终返回resultAsT.