using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test05
{
class Program
{
static void Main(string[] args)
{
int i = 2008;
object obj = i;
Console.WriteLine("1、i的值為{0},裝箱之後的對象為{1}", i, obj);
i = 927;
Console.WriteLine("2、i的值為{0},裝箱之後的對象為{1}", i, obj);
Console.ReadLine();
}
}
}
書中裝箱的定義為將值類轉換為引用類。我想問的是,第一次輸出。顯示都為2008,這個沒錯。第二步i重新賦值927,這時的i應該是引用類型了吧?但是為何第二次輸出結果i顯示的是927.而obj還是2008呢?引用類型不是一個變化了就都跟著變化麼?為什麼job這個引用類型沒有變化?
順便多說幾句:
你可能又要嘗試了
object obj2 = obj1;
obj2 = 123;
Console.WriteLine(obj1);
你會發現還是不會改變。
因為obj2 = 123;同樣會讓123再次裝箱,並且讓obj2指向新的裝箱的變量,而不會影響obj1。