当我将对象类型保留为集合时,泛型执行装箱/拆箱
本文关键字:执行 泛型 拆箱 集合 对象 类型 保留 | 更新日期: 2023-09-27 17:53:21
如果我有一个包含Object
的列表,就像这样:
List<object> t = new List<object>();
t.Add(10);
t.Add("xyx");
在这种情况下,如果我取回列表项,我需要打开它们的盒子吗?
"拆箱"只在使用对象来保存值类型时发生。
在您的示例中,t.Add(10);
确实将int值类型装箱为对象,因此在访问它时必须将其拆箱。
然而,t.Add("xyx");
正在添加一个字符串引用类型,所以当你访问它时,它不会被装箱,也不需要被拆箱。
但是,在这两种情况下,您都必须将值强制转换为正确的类型,以便作为该类型访问它。
如果您需要将它们视为特定类型的对象,可以。
var o = t[0]; //this is object
var i = (int)t[0]; //this is int
看情况。如果你想用它作为特定的类型,那么是的。
是的,你必须把它们拆成特定的类型