【发布时间】:2017-06-06 05:31:22
【问题描述】:
有一个类作为基础:
public abstract class DataObjectEntityItemBase
{ }
派生类:
public class CatalogDataObjectEntityItem : DataObjectEntityItemBase, ISupportsTabularDataObjectEntityContainer
{ }
有一个方法:
internal void FetchTabSectionDataObjectEntityByParentItem<T1>(
ITabSectionManager dataObjectEntityContainerOwner,
T1 parentDataObjectEntityItem)
where T1 : DataObjectEntityItemBase, ISupportsTabularDataObjectEntityContainer
{ }
我想调用FetchTabSectionDataObjectEntityByParentItem的问题代码:
FetchTabSectionDataObjectEntityByParentItem(
refDoeItem.LinkedConfigurationObject as ITabSectionManager,
refDoeItem as ISupportsTabularDataObjectEntityContainer);
错误:
错误 CS0311 类型 ISupportsTabularDataObjectEntityContainer 不能 在泛型类型或方法中用作类型参数“T1” FetchTabSectionDataObjectEntityByParentItem(ITabSectionManager, T1)'。没有隐式引用转换 ISupportsTabularDataObjectEntityContainer DataObjectEntityItemBase refDoeItem 是 DataObjectEntityItemBase 类型的变量。
refDoeItem 是 DataObjectEntityItemBase 类型的变量。
【问题讨论】:
-
除了您没有向我们展示所有相关代码之外,我会认为错误消息非常明显?
-
@MickyD,如您所见,我正在调用:“FetchTabSectionDataObjectEntityByParentItem(refDoeItem.LinkedConfigurationObject as ITabSectionManager, refDoeItem as ISupportsTabularDataObjectEntityContainer);”为什么“refDoeItem as ISupportsTabularDataObjectEntityContainer”与约束“where T1 : DataObjectEntityItemBase, ISupportsTabularDataObjectEntityContainer”不兼容?谢谢。
-
什么是
refDoeItem?我可能会让DataObjectEntityItemBase意识到ISupportsTabularDataObjectEntityContainer
标签: c# .net generics interface base-class