这类似于另一个话题我最近公布,但也许这可能是简单和清晰:C#上溯造型泛型类型接口
我要完成以下(或非常类似的东西)...
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>
,我得到一个空。
所以这不会在C#3.5中可行吗? –
可悲的是,没有。至少,不直接。您必须找到解决方法,例如使'CompanyNameDao'继承于'IManageableEntryDao';这是你的要求。 –
univerio
正确,那不太优雅,因为那么CompanyNameDao返回IManageableEntry对象而不是CompanyName对象。 –