我创建了一个实现该接口的接口和泛型类,以便同一个类的对象可以保存任何类型的数据。我成功创建了它的列表。但是如何以类型安全的方式从列表中读取数据。
public interface Parameter
{
}
public class Parameter<T> : Parameter
{
public T Value { get; set; }
}
Parameter[] parameters = new Parameter[] {
new Parameter<string> { Value = "X" },
new Parameter<int> { Value = 1 },
};
我应该如何遍历数组并获取单个值?参数接口没有属性Value的声明。
答案 0 :(得分:0)
您可以在Object
界面中声明类型为Parameter
的属性;这将允许您访问该值,无论其实际类型如何:
public interface Parameter
{
object Value { get; set; }
}
public class Parameter<T> : Parameter
{
public T Value { get; set; }
// Explicit interface implementation
object Parameter.Value
{
get { return Value; }
set { Value = (T)value; }
}
}