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. 红宝石变量澄清
- 6. 变量范围澄清
- 7. C#使用子句 - 澄清
- 8. jquery使用参考变量
- 9. C++澄清
- 10. C++ quaternion澄清
- 11. C#OfType()澄清
- 12. 参考或教程来澄清对象引用混淆
- 13. 需要澄清骡子中的变量
- 14. 的foreach $关键变量澄清
- 15. 关闭 - 澄清变量和函数
- 16. OCL - 需要澄清不变量?
- 17. 位操作澄清用C
- 18. C# - 澄清'where T:new()'
- 19. C# - 接口澄清
- 20. C++ - “使用”关键字澄清
- 21. 参考变量AS3
- 22. Moq'ing参考变量
- 23. 使用时参考的sessionStorage变量
- 24. 使用变量作为参考VBA
- 25. C++/CLI参考变
- 26. C:初始化参考变量双
- 27. 跨文件的C++参考变量
- 28. 参考vs C++中的变量
- 29. 的Tcl参数表澄清
- 30. 使用相同的参考变量与单独的变量。参考变量的费用.Net
不,变量'a'的值不会被改变。赋值给引用类型的变量会创建引用的副本,但不会引用该引用的对象。 – adatapost 2012-08-07 06:58:56
你被重新声明'a',你永远不会声明'b'和'c',你的类型不匹配。请发布正确的代码,否则我们无法回答你的问题。 – 2012-08-07 07:00:04