從MSDNunbox
確實盒裝值類型是否與對象中的實際值類型具有相同的地址?
- 的對象引用被壓入堆棧。
- 對象引用從堆棧中彈出並拆箱到值類型指針。
- 值類型指針被壓入堆棧。
在這種情況下,對象引用是否與值類型指針不同? (這兩個值都是堆中值類型的地址,因爲值類型是對象中唯一的成員)?
例如,一個元素數組:該數組的地址與該數組的第一個元素的地址相同。
void Main()
{
int[] test = new []{1};
unsafe
{
fixed (int* x = test)
{
fixed (int* y = &test[0])
{
Console.WriteLine((int)x);
Console.WriteLine((int)y); // They are equal
}
}
}
}
」否則你會如何獲得指向該值的指針?「更好的問題是,當「unbox.any」可用時,爲什麼你需要使用'unbox'? 「unbox」僅僅是來自前泛型的剩餘,還是它仍然有用?如果首先存在「unbox.any」,「unbox」是否會添加到CIL中? –
數組位置的全局地址與數組第一個元素位置的全局地址相同。看我更新的例子。所以這讓我想知道引用是否具有與值指針相同的值 – colinfang