程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> c#-關於C#裝箱的小白問題

c#-關於C#裝箱的小白問題

編輯:編程綜合問答
關於C#裝箱的小白問題

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。

miaoyan1989
miaoyan1989
miaoyan1989
miaoyan1989
miaoyan1989
qq_27559503
qq_27559503
qq_27559503
qq_27559503
qq_27559503
qq_27559503
qq_27559503
qq_27559503
qq_27559503
qq_27559503
qq_27559503
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved