这个问题已经有了答案:Collection of generic types9个答案我有一个对象(表单),它包含一个集合(.fields),我希望它包含泛型类(formfield)的实例。简单地说,formfield的定义如下:public class FormField<T>{ private Form Form; public T Value { get; set; } public string Name { get; set; } public void Process() { // do something } public FormField(Form form, string name, T value) { this.Name = name; this.Value = value; this.Form = form; }}这让我有了formfield,formfield等,这部分工作得很好。我想要的是一个“formfields”集合,不管它是什么类型,但是我不得不定义一个类型(看起来),比如:public class Form{ string Code { get; set; } string Title { get; set; } int Year { get; set; } Guid ClientID { get; set; } ICollection<FormField<int>> Fields { get; set; }}我想,我需要的是一个接口,它允许我抽象类型信息,从而将集合作为(例如)i formfield的实例而不是formfield的实例进行类型化但如果不在接口中强键入集合,我就看不到如何定义它…任何帮助(包括任何替代解决方案!)非常感谢!谢谢,本 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 创建一个非泛型接口或基类,它可能包含FormField所做的一切,除了特定类型的位。然后你可以有一个ICollection<IFormField>。显然,您不能以强类型的方式使用它,就使用的字段类型而言,但是您可以使用它的所有非特定类型的位(例如名称和表单)。 (adsbygoogle = window.adsbygoogle || []).push({});
09-11 22:46