これは私が最近投稿した別のトピックに似ていますが、おそらくこちらの方が単純でわかりやすいかもしれません:
次のこと(または非常に似たもの)を達成したい...
IManageableEntryDao<IManageableEntry> dao = new CompanyNameDao();
...次のクラスで:
public interface IManageableEntry {
string Name { get; set; }
}
public class CompanyName : IManageableEntry {
public string Name { get; set; }
}
public interface IManageableEntryDao<T> where T : IManageableEntry {
}
public class CompanyNameDao : IManageableEntryDao<CompanyName> {
}
キャストを実行しようとするとas IManageableEntryDao<IManageableEntry>
、null が返されます。