亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

C#中的引用類型

C#中的引用類型

慕容3067478 2019-12-26 13:49:26
考慮以下代碼:public class Program{    private static void Main(string[] args)    {        var person1 = new Person { Name = "Test" };        Console.WriteLine(person1.Name);        Person person2 = person1;        person2.Name = "Shahrooz";        Console.WriteLine(person1.Name); //Output: Shahrooz        person2 = null;        Console.WriteLine(person1.Name); //Output: Shahrooz    }}public class Person{    public string Name { get; set; }}顯然,當分配person1給person2且Name屬性person2更改時,Nameof person1也將更改。person1并person2具有相同的參考。為什么在時person2 = null,person1變量也不會為null?
查看完整描述

3 回答

?
守候你守候我

TA貢獻1802條經驗 獲得超10個贊

這兩個person和person2是引用,同一個對象。但是這些是不同的參考。所以當你跑步時


person2 = null;

您僅更改reference person2,而reference person和相應的對象保持不變。


我猜想最好的解釋方法是簡化圖示。這是以前 的情況person2 = null


如您所見,在第二張圖片上person2沒有引用任何內容(或者null嚴格來說,因為沒有引用和引用null是不同的條件,請參見Rune FS的注釋),同時person仍引用現有對象。


查看完整回答
反對 回復 2019-12-26
?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

您已更改person2為引用null,但person1此處未引用。

我的意思是,如果我們看一下person2,并person1指派那么這兩個引用相同的對象之前。然后,您指定person2 = null,因此第2個人現在引用的是其他類型。它沒有刪除person2引用的對象。


查看完整回答
反對 回復 2019-12-26
  • 3 回答
  • 0 關注
  • 614 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號