可以在C#中使用通用形式吗?
时间:2020-03-05 18:39:36 来源:igfitidea点击:
我们应该能够创建通用表单:
public partial class MyGenericForm<T> : Form where T : class { /* form code */ public List<T> TypedList { get; set; } }
有效的C#,并进行编译。但是,如果我们有任何图像表明无法找到资源,则设计器将无法工作,并且表单将抛出运行时异常。
我认为这是因为Windows窗体设计器假定资源将以简单类型的名称存储。
解决方案
回答
我有一个解决方法,可以解决,但并不理想:
向该项目添加一个新类,该类将继承其简单名称的表单。
internal class MyGenericForm: MyGenericForm<object> { }
这意味着尽管设计者仍然是错误的,仍然可以找到预期的简单类型(即没有<>
)。
回答
是的你可以!这是我前段时间通过技巧制作的博客文章:
设计通用表格
编辑:看起来我们已经用这种方式了。这种方法很好用,所以我不会认为它太笨拙。