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 { getset; } = 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 { getset; }  
    }  
}  

输出:

之前:100  
之后:200  

可见,对象b能够访问TestA属性指向的内存Test对象。

posted @   double64  阅读(343)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示