說我有下面的類:檢查泛型參數在編譯時
public class MyClass<T>
{
public MyClass() {
//construct logic
}
public IProperty<T> MyProperty { get; set; }
}
public interface IProperty<T> { }
public DateTimeProperty : IProperty<DateTime>
{
}
如果我嘗試把這個代碼進入MyClass
構造:
if (typeof(T) == typeof(DateTime))
MyProperty = new DateTimeProperty();
我得到以下編譯錯誤:如何在MyClass的構造函數中設置值MyProperty
必須是new DateTimeProperty
,只有T類型爲DateTime
?
您是否嘗試過明確的轉換呢? – ordag
使用該構造並不是真正意義上的泛型應用。 –