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

C# ref 学习1

ref 关键字用在四种不同的上下文中;

1.在方法签名和方法调用中,按引用将参数传递给方法。
2.在方法签名中,按引用将值返回给调用方。
3.在成员正文中,指示引用返回值是否作为调用方欲修改的引用被存储在本地,或在一般情况下,局部变量按引用访问另一个值。
4.在 struct 声明中声明 ref struct 或 readonly ref struct。

先看按引用传递参数;

在方法的参数列表中使用 ref 关键字时,它指示参数按引用传递,而非按值传递。 

不要混淆通过引用传递的概念与引用类型的概念。

当通过引用传递时,不会对值类型装箱。

若要使用 ref 参数,方法定义和调用方法均必须显式使用 ref 关键字;

namespace WindowsFormsApplication1
{public partial class Form1 : Form{public Form1(){InitializeComponent();}private void button1_Click(object sender, EventArgs e){int number = 7;add44(ref number);textBox1.Text = number.ToString();}void add44(ref int a){a = a + 44;}}
}


 

传递到 ref 或 in 形参的实参必须先经过初始化,然后才能传递;

这与 out 形参不同,在传递之前,不需要显式初始化该形参的实参;

 

http://www.lryc.cn/news/170634.html

相关文章:

  • MQ - 08 基础篇_消费者客户端SDK设计(下)
  • Flutter层对于Android 13存储权限的适配问题
  • Android kotlin开源项目-功能标题目录
  • Linux下,基于TCP与UDP协议,不同进程下单线程通信服务器
  • qt功能自己创作
  • Linux网络编程:使用UDP和TCP协议实现网络通信
  • 【后端速成 Vue】初识指令(上)
  • 爬虫 — Scrapy-Redis
  • tcpdump常用命令
  • 计算机网络运输层网络层补充
  • java CAS详解(深入源码剖析)
  • 1786_MTALAB代码生成把通用函数生成独立文件
  • 2023/09/19 qt day3
  • Docker 学习总结(78)—— Docker Rootless 让你的容器更安全
  • 如何使用ArcGIS Pro将等高线转DEM
  • 【爬虫基础】万字长文详解XPath
  • 分布式多级缓存SDK设计的思考
  • 设计模式:适配器模式(C++实现)
  • 【深度学习实验】前馈神经网络(二):使用PyTorch实现不同激活函数(logistic、tanh、relu、leaky_relu)
  • 容器技术所涉及Linux内核关键技术
  • IPV4和IPV6,公网IP和私有IP有什么区别?
  • 高云FPGA系列教程(7):ARM GPIO外部中断
  • Python爬虫:动态获取页面
  • 大数据平台迁移后yarn连接zookeeper 异常分析
  • Ubuntu Nginx 配置 SSL 证书
  • 将本地前端工程中的npm依赖上传到Nexus
  • 软考高级架构师下篇-16通信系统架构设计理论与实践
  • 国庆中秋特辑(二)浪漫祝福方式 使用生成对抗网络(GAN)生成具有节日氛围的画作
  • stm32 串口发送和接收
  • Vite + Vue3 实现前端项目工程化