簡體   English   中英

當我將Object類型保留到集合時,泛型是否會進行裝箱/取消裝箱

[英]Do generics do boxing / unboxing when I keep Object type to the collection

如果我有一個列表,其中包含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

這取決於。 如果您想將其用作特定類型,那么是。 否則,您可以將它們用作對象。

是的,您必須將它們拆箱到特定類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM