說我有一類在運行時除了泛型類型未知的對象上的調用方法?我應該只使用動態?
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<>
在運行時...
謝謝,但是如果我不能將東西拉入非泛型基類,那麼使用'dynamic'就像我將要獲得的一樣好? –
那麼你可以使用一些明確的反射來拉出並調用屬性getter;但這是好還是壞會有爭議。 –