有没有办法做这样的代码:
class GenericClass<T>
{
void functionA()
{
T.A();
}
}
或者,如何调用类型参数的函数(类型是我的自定义类)。
Re:
T.A();
如果这就是您的意思,您不能调用类型参数的静态方法。您最好将其重构为实例方法T
,也许有一个通用约束(where T : SomeTypeOrInterface
, with SomeTypeOrInterface
定义A()
)。另一种选择是dynamic
,这允许鸭子类型化instance方法(通过签名)。
如果你的意思是T
仅在运行时才知道(作为Type
),那么你需要:
typeof(GenericClass<>).MakeGenericType(type).GetMethod(...).Invoke(...);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)