と非ジェネリックインターフェイスのプロパティをオーバーライド私は、次のような二つのインタフェースがあります。ジェネリック1
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?
ICLEntity IEntityViewModel.Entity
{
get
{
return ActiveItem.Entity;
}
set
{
ActiveItem.Entity = value as T;
}
}
が、その後、私は、私は必要なものではないクラス、2つのエンティティのプロパティを取得:
はpublic abstract class EntityConductor<T> : IEntityViewModel<T>
where T : class, ICLEntity
{
public T Entity
{
get; set;
}
}
コンパイラは、私は例えば、同様IEntityViewModelの実装を追加する必要があります。ここではサンプルクラスです。ジェネリックインターフェイスを実装する場合、EntityプロパティはT型でなければならず、非汎用型の場合はICLEntity型である必要があります。
どうすればいいですか?私は何か簡単なものを逃しています私は.NET 4.0を使用しています、共分散はここで私を助けることができますか?
ありがとうございます!