@H_403_1@假设我有一个表示数据字段的对象,该对象需要以下属性:名称,类型,值,长度.这是对象:
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>>那么我们可以为列表中的给定字段分配任何值,当我们查询Type时,我们得到’object’.
事情是 – 在这个列表上,我可能希望几个字段持有字符串,很少拥有int,日期,甚至自定义对象,反过来将有一个列表的字段…
泛型是一种很好的解决方案吗?如果是,我该怎么办呢?如果没有,什么是更好的方法?
– -编辑 – –
只是添加一些更多的背景:
我可能想要一个字段列表,每个字段将保存不同的数据类型,如下所示:
List<Field<object>> lst = new List<Field<object>>(); lst.Add(new Field<string>()); lst.Add(new Field<int>()); lst.Add(new Field<SomeObjectFromMyApp>());
后来我将不得不在一个循环中自动查询这些对象及其属性,就像这样:
foreach(Field<object> fld in lst) { Type t = fld.Type; //do some other stuff }