原文地址:https://www.cnblogs.com/huvjie/p/15341320.html
首先,属性
是引用类型。引用类型之间赋值传递后,他们访问的应该是同一块内存区。
来测试一下:
using System; namespace ConsoleApp1 { class Program { static void Main() { A aa = new A(); aa.aaa(); Console.ReadKey(); } } class Test { public int a = 100; } class A { private Test TestA { get; set; } = new Test(); private B b = new B(); public void aaa() { Console.WriteLine( "之前:" + TestA.a); this.b.TestB = this.TestA; this.b.TestB.a = 200; // 通过对象b来更改。 Console.WriteLine("之后:" + TestA.a); } } class B { public Test TestB { get; set; } } }
输出:
之前:100 之后:200
可见,对象b
能够访问TestA
属性指向的内存Test
对象。