首先,属性
是引用类型。引用类型之间赋值传递后,他们访问的应该是同一块内存区。
来测试一下:
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
对象。