C# 引用类型赋值指向的是同一块内存

首先,属性是引用类型。引用类型之间赋值传递后,他们访问的应该是同一块内存区。

来测试一下:

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对象。

上一篇:Java 类隔离加载的正确姿势


下一篇:接口的多继承