有如下一段代碼
int i1 = 2;
object o1 = i1;
object o2 = o1;
object.ReferenceEquals(o1,o2).Dump(); // true
o1 = 5;
o1.Dump("o1"); // return 5
o2.Dump("o2"); // return 2
上述代碼中,i1為int值型別,隨后賦值給object o1 既為裝箱程序并成為參考型別, 然后o1又賦值給o2(根據參考型別特點,實際值應該存放在堆Heap中,而堆疊Stack存放參考地址,其結果應該一致),請問為什么對 o1 重新賦值后為什么并沒有影響o2的值?
uj5u.com熱心網友回復:
o1 = 5;//你這是重新裝箱
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/248334.html
標籤:C#
上一篇:USB資料截獲
下一篇:進制轉換
