相关疑难解决方法(0)

不同的Generics T在同一个系列中

public abstract Column<T>
{
   private T Value {get;set;}    

   public abstract string Format();

}

public class DateColumn : Column<DateTime>
{
   public override string Format()
   {
      return Value.ToString("dd-MMM-yyyy");
   }
}

public class NumberColumn : Column<decimal>
{
   public override string Format()
   {
      return Value.ToString();
   }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是将这些添加到通用集合中.我知道它可能,但我怎样才能在集合中存储多种类型等

IList<Column<?>> columns = new List<Column<?>()
Run Code Online (Sandbox Code Playgroud)

我真的很感激有关实现这一目标的任何建议.目标是将不同的列类型存储在同一个List中.值得一提的是我使用NHibernate和鉴别器来加载适当的对象.最后,Value需要具有类的类型.

非常感谢您的帮助.

c# generics

9
推荐指数
1
解决办法
8527
查看次数

通用类型的集合

我有一个对象(窗体),其中包含一个集合(.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;
    }
}
Run Code Online (Sandbox Code Playgroud)

这允许我有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>> …
Run Code Online (Sandbox Code Playgroud)

c# generics collections interface

6
推荐指数
2
解决办法
6236
查看次数

标签 统计

c# ×2

generics ×2

collections ×1

interface ×1