有没有什么办法可以这样写代码:
class GenericClass<T>
{
void functionA()
{
T.A();
}
}
或者,如何调用类型参数的函数(类型是我的自定义类)。
最佳答案
回复:
T.A();
你不能调用类型参数的静态方法,如果那是你的意思的话。您最好将其重构为 T
的实例方法,也许使用通用约束(where T : SomeTypeOrInterface
,使用 SomeTypeOrInterface
定义 A()
)。另一种选择是 dynamic
,它允许鸭子类型的实例方法(通过签名)。
如果您的意思是 T
仅在运行时已知(作为 Type
),那么您需要:
typeof(GenericClass<>).MakeGenericType(type).GetMethod(...).Invoke(...);
关于c# - 调用类型参数的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3360661/