同一个列表中的许多泛型类型?

时间:2015-01-28 12:30:18

标签: c#

我有一个像这样定义的泛型类:

public abstract class StationProperty{}

   public class StationProperty<T>
   {
      public int Id { get; set; }
      public T Value { get; set; }
   }

然后我有一个如下所示的列表:

var props = new List<StationProperty>();

到目前为止一切顺利,除非我尝试将项目添加到列表中,如下所示:

var prop = new StationProperty<bool>(39, true);
// var prop = new StationProperty<int>(39, 100); another example
props.Add(prop);

它抛出设计时间错误:参数类型&lt;布尔&GT;不能分配给参数类型X

我的想法是拥有一个强类型值(不使用对象)的值列表,然后能够在以后使用泛型推断它们的类型。

2 个答案:

答案 0 :(得分:5)

那是因为StationProperty<T>不是StationProperty。他们唯一的共同点是名字。也许一个人应该来自另一个人?

public class StationProperty<T>:StationProperty{}

答案 1 :(得分:1)

StationPropertyStationProperty<T>是两个独立类。

您正在创建第一个列表并插入第二个实例 - 无法完成。