【发布时间】:2018-12-30 18:55:25
【问题描述】:
谁能帮我解决这个问题: 我使用 c# Winforms 作为伙伴创建了一个通用基础“用户控件”:
public class EntityGenericBase<TModel> : UserControl
where TModel : class, IEntityClass, new()
{}
我已经创建了另一个继承上述“EntityGenericBase”的用户控件:
public class DepartmentView : EntityGenericBase<Department>
{
public DepartmentView():base()
{
InitializeComponent();
}
}
但不幸的是,当我尝试在设计模式下查看用户控件时,我收到以下错误:
GenericArguments[0], 'Department', on 'EntityGenericBase`1[TModel]' 违反了类型参数 'TModel' 的约束。
我仍然可以毫无问题地运行应用程序。
备注:当我删除约束“where子句”时,一切正常。
我使用“Visual Studio Community 2017”
【问题讨论】:
-
报错信息说
Departmentis not implementedIEntityClassor It's not a class, or it doesn't have a parameterless constructor. -
感谢您的宝贵回复。是的,它工作正常,但没有“位置”约束。
-
不客气。仔细阅读下面的评论/答案,并确保
Department类满足所有条件。 -
但是当我添加'where TModel : class, IEntityClass, new() 时会产生上述错误。当我从约束中删除“IEntityClass”时,问题就解决了