假设我有一个表示数据字段的对象,该对象需要以下属性:名称、类型、值、长度。这是对象:
class Field<T>
{
public string Name { get; set; }
public Type Type
{
get
{
return typeof(T);
}
}
public int Length { get; set; }
public T Value { get; set; }
}
我使用了泛型,因为我想强制代码的用户只能分配某个类型的值。
现在的问题是当我想创建一个字段列表时。
如果我像这样创建列表,List<Field<object>>
我们可以将任何值分配给列表中的给定字段,当我们查询类型时,我们会得到“对象”。
问题是 - 在那个列表上,我可能想要几个字段保存字符串,几个保存整数,日期,甚至自定义对象,这些对象反过来将有一个字段列表......
泛型是一个很好的解决方案吗?如果是,我将如何实施它?如果没有,有什么更好的方法?
---编辑---
只是为了添加更多背景:
1.我可能想要一个字段列表,每个字段将包含不同的数据类型,如下所示:
List<Field<object>> lst = new List<Field<object>>();
lst.Add(new Field<string>());
lst.Add(new Field<int>());
lst.Add(new Field<SomeObjectFromMyApp>());
2. 稍后我将不得不在循环中自动查询这些对象及其属性,如下所示:
foreach(Field<object> fld in lst)
{
Type t = fld.Type;
//do some other stuff
}