完整文章標題

物件賦值給物件是參照 使用C#驗證 (類別中宣告另一個類別當變數並傳入一個物件賦值給那個類別是一種參照行為)

 

 

驗證程式碼(用C#)

 

class Program
    {
        static void Main(string[] args)
        {
            Weather weather = new Weather();
            Obb obb = new Obb(weather);
 
            weather.s = "wwww";
 
            Console.WriteLine("weath.s = {0}",weather.s);
            Console.WriteLine("obb.wea.s = {0}",obb.wea.s);
        }
    }
 
 
    class Weather
    {
        ArrayList AL = new ArrayList();
        public string s = "w";
        public void AddAL(object o)
        {
            AL.Add(o);
        }
 
    }
 
    class Obb
    {
        public Weather wea;
 
        public Obb(Weather w)
        {
            this.wea = w;
            w.AddAL(this);
        }
    }

 

-----輸出結果---------

weath.s = wwww
obb.wea.s = wwww
請按任意鍵繼續 . . .

--------------------------------

 

簡單來講我先有一個class weather,裡面有一個預設字串w

接著在obb生成的時候傳入weather物件賦值給obb裡的weather

然後接下來只改變weather裡的字串變成www

結果obb裡的wea的字串s竟然也自己變成www了

因此判斷obb裡的weather在賦值的時候是用參考已有物件位址的方法,而不是創造一個新的物件

 

arrow
arrow
    全站熱搜

    olivermode 發表在 痞客邦 留言(0) 人氣()