我需要暂时将多个值存储在列表或数组中。这些值是多种类型,如字符串、整数、日期时间等。
我有两个选择:
选项 1:
声明一个对象类型的数组,如下所示:
object[] values;
选项 2:
为接口声明数组并为要保存的每种类型实现自己的类。
interface IType
{
}
IType[] values;
class StringValue : IType
{
public string StringValue { get; set; } // not declared in interface!
}
class IntValue : IType
{
public int IntValue { get; set; } // not declared in interface!
}
问题:
每个实施选项的性能优势和/或影响是什么?据我所知(或 quessing),boxinq 在使用object[]
.
选项二呢?至少使用StringValue
或IntValue
属性需要更多代码,必须确定第一个类型,IType
必须强制转换为 StringValue 或 IntValue 等...
使用对性能有这么大的影响object[]
吗,我真的应该考虑一下选项 2 之类的东西吗?