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

C# 中引用类型的探讨

引用类型的变量不直接包含其数据;它包含对其数据的引用。 如果按值传递引用类型参数,则可能更改属于所引
用对象的数据,例如类成员的值。 但是,不能更改引用本身的值;例如,不能使用相同引用为新对象分配内存,并
将其保留在方法外部。 为此,请使用 ref 或 out 关键字传递参数。 为简单起见,下面的示例使用 ref

示例1:

var bClass = new BaseClass() { Number =30};   
bClass.Method1();Console.WriteLine(bClass.Number);
Test( bClass);
Console.WriteLine(bClass.Number);Console.ReadKey();void Test( BaseClass baseClass)
{baseClass = new BaseClass{Number = 100};
}

运行结果
运行结果截图

如果方法中不希望更改引用类型指向,可以使用关键字 in

红色波浪线报错

如果要想实现,预想情况可以使用ref关键字

var bClass = new BaseClass() { Number =30};   
bClass.Method1();Console.WriteLine(bClass.Number);
Test(ref bClass);
Console.WriteLine(bClass.Number);Console.ReadKey();void Test(ref BaseClass baseClass)
{baseClass = new BaseClass{Number = 100};
}
http://www.lryc.cn/news/417177.html

相关文章:

  • 技术分享| 前端性能优化——虚拟滚动(Virtual Scroll)
  • Flink 实时数仓(四)【DWD 层搭建(二)流量域事实表】
  • Go 1.19.4 接口-Day 10
  • 智能编程新纪元:腾讯AI代码助手的高效编程体验
  • 使用snap安装docker配置阿里云镜像加速
  • 安全编程的代码示例
  • 【实现100个unity特效之15】最简单的方法使用shader graphs实现2d非像素和像素树叶草的随风摇摆效果
  • Vue3+TS+element plus实现一个简单列表页面
  • Go语言中gin+gorm开发前端端分离博客时遇到的问题,gorm执行查询时如何选中特定字段?
  • 计算机网络11——数据库语法2
  • 华为USG6000E-S12防火墙Key exchange failed.无法SSH解决方案
  • matlab基础操作(五)
  • 力扣 两数之和
  • Django 实现连续请求
  • 前端(react)框架nextjs
  • 深耕编程语言18年,对话 Rust、TypeScript、Nushell 核心贡献者 Sophia Turner | Open AGI Forum
  • 深度学习--图像分割UNet介绍及代码分析
  • 接了一个2000块的小活,大家进来看看值不值,附源码
  • 基于MindFormers实现GPT2模型的推理
  • 探索腾讯云AI代码助手:智能编程的新时代
  • MySQL 之 MHA 高可用架构详解
  • WangEditor自定义新元素,并解决自定义元素中换行无法消除样式的问题
  • VBA Excel口算题
  • C++理解临时对象的来源
  • C++协助完成返回值优化
  • 2024年睿抗机器人开发者大赛(RAICOM)国赛题解
  • 声明式UI语法
  • JDBC连接数和1521连接数之间的区别和联系(Java Database Connectivity)
  • Leetcode - 136双周赛
  • SQLite ORDER BY 语句