public partial class BaseListForm<TEntity> : RibbonForm where TEntity : CoreBaseEntity {}
我将TEntity赋予BaseListForm并从CoreBaseEntity中赋予 predicate ,
public partial class AddressTypeForm_List : BaseListForm<Si_AddressType> // Si_AddressType inherits from CoreBaseEntity {}
其他从BaseListForm继承的窗体看起来像这样
public class ShowListForms<TForm> where TForm : BaseListForm<CoreBaseEntity> {}
我有一个名为ShowListForms的类,用于特定用途,它也继承自BaseListForm。
ShowListForms<AddressTypeForm_List>.ShowListForm();
我在ShowListForm中使用窗体时遇到了这个问题。
错误;
错误CS0311类型"AddressType. AddressTypeForm_List"不能用作泛型类型或方法"ShowListForms"中的类型参数"TForm"。没有从"AddressType. AddressTypeForm_List"到"Models. Base. CoreBaseEntity〉"的隐式引用转换。
谢谢你的帮助。
如果我在第二个代码部分中使用BaseListForm而不是BaseListForm,问题就会解决,但我需要一个变通方案。<Si_AddressType>**in second code part the problem resolves but i need a workaround.
1条答案
按热度按时间sqougxex1#
遗憾的是,如果你想让它工作,你必须在子类中的任何地方携带TEntity。
问题是
public class ShowListForms<TForm> where TForm : BaseListForm<CoreBaseEntity> {}
没有传递给BaseListForm
的任何TEntity,因此它期望TForm是完全扩展BaseListForm<CoreBaseEntity>
的东西你可以这样做:
不,当你叫它的时候会看起来更复杂一点,但是我认为它应该起作用。