0
我有兩個接口,如下所示:重寫非泛型接口特性與通用一個
public interface IEntityViewModel<T> : IEntityViewModel where T : class, ICLEntity
{
new T Entity { get; set; }
}
public interface IEntityViewModel
{
void LoadEntity(int primaryKey);
bool? DialogResult { get; set; }
ICLEntity Entity { get; set; }
}
當我實現一個類,我怎麼能保證,關於階級出現的實體屬性是通用T?下面是一個示例類:
public abstract class EntityConductor<T> : IEntityViewModel<T>
where T : class, ICLEntity
{
public T Entity
{
get; set;
}
}
編譯器要求我加入IEntityViewModel實施爲好,例如:
ICLEntity IEntityViewModel.Entity
{
get
{
return ActiveItem.Entity;
}
set
{
ActiveItem.Entity = value as T;
}
}
但後來我得到的類,它是不是我需要兩個實體屬性。如果實現泛型接口,我需要Entity屬性爲T類型,如果是非泛型類型,則爲ICLEntity類型。
這怎麼辦?我錯過了一些簡單的東西嗎我正在使用.NET 4.0,協變可以幫助我嗎?
謝謝!