.NET中List(Of Object)元素的类型信息存储问题咨询
.NET中List(Of Object)元素的类型信息存储问题
会存储每个元素对应的类型信息。
在.NET环境里,List(Of Object)的元素虽然被声明为Object类型,但实际存储的是对具体对象的引用:
- 当添加值类型(比如示例中的整数
1)时,会执行装箱操作,装箱后的对象会完整保留原值类型的元数据信息; - 添加引用类型(比如示例中的字符串
"1")时,本身就携带类型标识,即使被当作Object引用存储,实际类型的信息也不会丢失。
你可以通过代码验证这一点:
Dim a = New List(Of Object) a.Add(1) a.Add("1") ' 输出对应元素的实际类型 Console.WriteLine(a(0).GetType()) ' 结果:System.Int32 Console.WriteLine(a(1).GetType()) ' 结果:System.String
简单来说,.NET里所有对象实例在内存中都会保留自身的类型信息,所以List(Of Object)中的每个元素都能正确反映它的实际类型。
内容的提问来源于stack exchange,提问作者user17611369
相关产品推荐
相关产品推荐

