说我有课
public abstract class A<T>
{
public T GetT{get;}
public ISomeInterface AMethod{get;}
}
然后我在另一个类中有一些其他方法,我在其中获取一个对象,我想检查它的类型,A<>
然后如果它是获取类型T
并调用方法AMethod
。所以我这样做:
if (theObject.GetType().GetGenericTypeDefinition() == typeof (A<>))
{
Type TType = theObject.GetType().GetGenericArguments()[0];
dynamic dynamicObject= theObject;
ISomeInterface filter = dynamicObject.AMethod;
//...some other stuff using TType
}
有没有办法在不使用动态对象的情况下做到这一点,因为我不能在运行时使用TType
或使用泛型类型定义来声明变量的类型A<>
......