当前位置: 首页 > news >正文

C# 不可变引用类型 和 可变引用类型

一、基本概念

引用类型的实例对象存储在托管堆上,变量保存的是对象的引用。

不可变引用类型:
对象状态:创建后不可修改
修改操作:创建新对象
线程安全:天然安全(无需锁)
内存开销:修改时产生新对象

可变引用类型:
对象状态:创建后可修改
修改操作:修改原对象
线程安全:需要同步机制
内存开销:修改无额外对象

二、常见类型

可变引用类型:

List,  Dictionary,  class,  HashSet,  Queue,  LinkedList


不可变引用类型(Immutable):

string
元组
委托(Action, Func, Delegate)
ImmutableStack, ImmutableQueue, ImmutableList, ImmutableDictionary

三、不可变引用类型的特性

不可变引用类型赋值后就不受原变量影响

using System;namespace Test
{public class Test{private Action testAction1;private Action testAction2;private void TestAction(){testAction1 += FunA; // 创建新对象testAction2 = testAction1;testAction1 += FunB; // 创建新对象// 这个时候curAction和testAction指向的对象不再是同一个了// 测试Console.WriteLine("执行testAction1");testAction1.Invoke();Console.WriteLine("执行testAction1");testAction2.Invoke();// 不可变引用类型赋值后就不受原变量影响
        }private void FunA(){Console.WriteLine("执行方法A");}private void FunB(){Console.WriteLine("执行方法B");}}
}

 

http://www.jsqmd.com/news/796997/

相关文章:

  • 2026 水处理设备选购指南:反渗透、超纯水设备实力厂家推荐 - 深度智识库
  • 狂揽《三角洲游戏》亿万金主!顶尖俱乐部御用“印钞机”,游戏电竞护航陪玩源码系统小程序重塑寡头级护航接单平台生态 - 壹软科技
  • 丙午年盛事!贤良港天后祖祠妈祖诞辰1066周年盛典隆重举行
  • NLP基石:从n-gram到现代语言模型的演进之路
  • 告别参数烦恼:用复矢量解耦搞定PMSM电流环,实测带宽不随转速掉!
  • CH584NFC读卡器读数据解析
  • Windows 11系统优化深度指南:使用Win11Debloat实现高效系统清理与性能提升
  • NotebookLM接入Google Drive效率翻倍:3步完成自动文档捕获与智能摘要生成
  • SPSS数据合并避坑指南:键变量设置、缺失值处理与常见错误解析
  • 04 - 运行 rocrtst 第一个测试
  • 保姆级教程:用vcftools计算群体Fst值,从VCF文件到可视化结果图
  • 设备管理子系统
  • 手机端PPSSPP中文版最全使用指南
  • Google Sheets接入Gemini API的完整链路(企业级部署避坑手册)
  • 2026杭州奢侈品回收源头老店推荐:十六年万奢回收,凭合规高价与专业鉴定领跑行业 - 深度智识库
  • Python 爬虫高级实战:异地多机房爬虫协同采集
  • ncmdump终极指南:快速解密网易云音乐NCM格式文件
  • 别再百度了!工程师私藏的5个免费Datasheet查询网站(附使用技巧)
  • 收藏!小白必看:AI大模型进入规模化部署,普通人如何抓住机遇?
  • 如何免费在线查看SQLite数据库?这款轻量工具让你3秒搞定!
  • 2026年江苏酒店袋泡茶代加工与客房茶包供应链深度横评指南 - 年度推荐企业名录
  • 深度学习调优三剑客:动量、学习率与权重衰减的协同优化
  • 05 - rocrtst 功能测试详解
  • MacOS brew安装及镜像源设置统一脚本
  • 为什么92%的Midjourney动画项目失败?根源在Onion Skin设置错误——5个致命配置陷阱与实时修正方案
  • 从选择退出到选择加入:数据隐私保护的设计伦理与技术实践
  • Simulink建模小技巧:Relay模块的‘记忆’功能如何用C代码实现的?一个全局变量搞定
  • 嵌入式开发实战:在STM32上实现CRC-16/IBM-3740校验(附查表法与直接法性能对比)
  • postgres大版本升级实践 - renqiang
  • SAP PS模块BAPI与BDC混用指南:项目预算下达(CJ30/CJ32)的两种自动化方案对比