1
A
回答
5
您需要離婚在你的心中兩個概念; 參考和對象。 參考本質上是託管堆上的對象的地址。所以:
A a = new A(); // new object A created, reference a assigned that address
B b = new B(); // new object B created, reference b assigned that address
a = b; // we'll assume that is legal; the value of "b", i.e. the address of B
// from the previous step, is assigned to a
c = null; // c is now a null reference
b = c; // b is now a null reference
這不會影響「a」或「A」。 「a」仍然包含我們創建的B的地址。
所以不,「a」最後不是零。
6
假設所有對象a,b,c來自同一類,a
將不會是null
。在分配到c
之前,它將保留參考值b
的值。
假設您有以下類
class Test
{
public int Value { get; set; }
}
然後嘗試:
Test a = new Test();
a.Value = 10;
Test b = new Test();
b.Value = 20;
Console.WriteLine("Value of a before assignment: " + a.Value);
a = b;
Console.WriteLine("Value of a after assignment: " + a.Value);
Test c = null;
b = c;
Console.WriteLine("Value of a after doing (b = c) :" + a.Value);
輸出將是:
Value of a before assignment: 10
Value of a after assignment: 20
Value of a after doing (b = c) :20
相關問題
- 1. 澄清C++中的參考文獻
- 2. 對象參考澄清
- 3. C++參考變量
- 4. 需要澄清C#靜態變量
- 5. 澄清XCode中的StoryBoard參考文獻
- 6. C++參考本地變量與參考
- 7. 紅寶石變量澄清
- 8. 如果($變量!=「」)澄清
- 9. 變量範圍澄清
- 10. Javascript變量定義 - 澄清
- 11. C#使用子句 - 澄清
- 12. jquery使用參考變量
- 13. 如何使參考變量(C++)
- 14. C++澄清
- 15. C#OfType()澄清
- 16. C++ quaternion澄清
- 17. BASH - 使用變量參考參數
- 18. 參考或教程來澄清對象引用混淆
- 19. 清單參考問題C#
- 20. 的foreach $關鍵變量澄清
- 21. 關閉 - 澄清變量和函數
- 22. 需要澄清騾子中的變量
- 23. OCL - 需要澄清不變量?
- 24. 澄清一個JavaScript變量問題
- 25. 靜態變量初始化 - 澄清
- 26. 字符串int變量澄清
- 27. 方法調用使用參考變量
- 28. 位操作澄清用C
- 29. C# - 澄清'where T:new()'
- 30. C# - 接口澄清
不,變量'a'的值不會被改變。賦值給引用類型的變量會創建引用的副本,但不會引用該引用的對象。 – adatapost 2012-08-07 06:58:56
你被重新聲明'a',你永遠不會聲明'b'和'c',你的類型不匹配。請發佈正確的代碼,否則我們無法回答你的問題。 – 2012-08-07 07:00:04