C#_值类型与引用类型 及 值参数与引用参数

news/发布时间2024/5/18 13:52:33

值类型与引用类型

栈帧和对象内部都维护着符号表,依变量的标识符查询符号表可知地址偏移量

对于成员变量而言,可得相对于所属对象地址的地址偏移量
对于局部变量而言,可得相对于帧指针所指地址的地址偏移量(关于栈指针和帧指针:栈指针指向栈的顶部,帧指针指向该函数对应的帧的底部)
基于此:
对于值类型而言,依地址偏移量找到的数据即为实际数据
对于引用类型而言,依地址偏移量找到的数据为实际数据在堆中的地址

值参数与引用参数

值参数和引用参数的区别在于传参时是否会创建参数副本:值参数不会创建副本,而引用参数会创建副本

换言之,值类型参数的参数与实体之间无直接关联,修改参数不会对实体产生影响;引用类型参数的参数与实体可视为同一参数,修改参数会将修改同步至实体。

注:当函数并不修改参数引用,而只是修改被引用的对象时,值参数引用类型引用参数引用类型在使用上并无区别,只是机制不同

使用方式:形参与实参用 ref 修饰

int num = 100;
public void Calculate(ref int x, int y)
{x++;Console.WriteLine(x + y);
}
Calculate(ref num, 50);
Console.WriteLine("num=" + num);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/ABad/1483.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

P2P 应用

P2P 工作方式概述 在 P2P 工作方式下,所有的音频/视频文件都是在普通的互联网用户之间传输。 1 具有集中目录服务器的 P2P 工作方式 Napster 最早使用 P2P 技术,提供免费下载 MP3 音乐。 Napster 将所有音乐文件的索引信息都集中存放在 Napster 目录服…

vulhub中Apache Log4j Server 反序列化命令执行漏洞复现(CVE-2017-5645)

Apache Log4j是一个用于Java的日志记录库,其支持启动远程日志服务器。Apache Log4j 2.8.2之前的2.x版本中存在安全漏洞。攻击者可利用该漏洞执行任意代码。 1.我们使用ysoserial生成payload,然后直接发送给your-ip:4712端口即可。 java -jar ysoserial-…

上网行为监控软件大盘点:好用的上网行为管理软件一览

随着企业对于员工工作效率和网络安全性的日益关注,上网行为监控软件成为了许多企业不可或缺的管理工具。 这些软件能够全面记录和分析员工的上网行为,帮助企业提升工作效率、保障数据安全,并规范员工的上网习惯。 一、上网行为管理软件定义…

Django模板(四)

一、include标签 加载一个模板,并在当前上下文中进行渲染。这是一种在模板中 “包含” 其他模板的方式 简单的理解:在当前模板中引入另外一个模板内容 1.1、使用方法 模板名称可以是变量,也可以是单引号或双引号的硬编码(带引号)的字符串 {% include "foo/bar.ht…

网络协议与攻击模拟_17HTTPS 协议

HTTPShttpssl/tls 1、加密算法 2、PKI(公钥基础设施) 3、证书 4、部署HTTPS服务器 部署CA证书服务器 5、分析HTTPS流量 分析TLS的交互过程 一、HTTPS协议 在http的通道上增加了安全性,传输过程通过加密和身份认证来确保传输安全性 1、TLS …

maven 打包命令

Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具。 Maven的核心功能便是合理叙述项目间的依赖关系,通俗点讲,就是通过po…

php基础学习之文件包含

描述 在一个php脚本中,将另一个php文件包含进来,合作实现某种功能 这个描述看起来似乎和C/Java等语言的头文件/包有点类似,但本质是不一样的 打个比方: C/Java的头文件/包更像是一个工具箱,存放各种很完善的工具&#…

【Linux】线程概念和线程控制

目录 一、Linux 二、线程 三、线程控制 一、Linux Linux是一种开源的类Unix操作系统内核,它是由林纳斯托瓦兹(Linus Torvalds)在1991年首次发布的。Linux被广泛应用于各种设备和系统,包括个人电脑、服务器、嵌入式系统等。 L…

机器人十大前沿技术(2023-2024年)

2023-2024年机器人十大前沿技术 1. 具身智能与垂直大模型 具身智能是指拥有自主感知、交互和行动能力的智能体,能够与环境进行实时互动,从而实现对环境的理解和适应。 “大模型”是指在深度学习和人工智能领域中,使用大量参数和数据进行训…

常见的几种Web安全问题测试简介

Web项目比较常见的安全问题 1.XSS(CrossSite Script)跨站脚本攻击 XSS(CrossSite Script)跨站脚本攻击。它指的是恶意攻击者往Web 页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web 里面的html 代码会被执行,从而达到恶意用户的特殊…

GitCode配置ssh

下载SSH windows设置里选“应用” 选“可选功能” 添加功能 安装这个 坐等安装,安装好后可以关闭设置。 运行 打开cmd 执行如下指令,启动SSH服务。 net start sshd设置开机自启动 把OpenSSH服务添加到Windows自启动服务中,可避免每…

3dmax渲染为什么是黑色?渲染100邀请码1a12

3dmax是室内设计常用的建模软件,利用3dmax完成建模后最重要的工作就是渲染了,好的渲染效果能帮助推广你的项目,但有时候会遇到渲染出来是黑色的情况,这是为什么呢?一起来看看吧! 原因一:相机被挡…

FPGA之多路复选器1

7系列FPGA中的LTU和相关的多路复选器可以实现以下功能: 使用一个LUT的4: 1多路复选器 使用两个LUT的8: 1多路复选器 使用四个 LUT 的 16: 1多路复选器 4:1复选器 1个LUT可以配置为4: 1多路复选器。4:1多路复选器可以通过触发器在同一片中实现。一个slice中最多可以实现四个…

ArcgisForJS基础

文章目录 0.引言1.第一个ArcgisForJS应用程序1.1.安装部署ArcgisForJS1.2.实现ArcgisForJS应用程序 2.开发与调试工具2.1.集成开发环境2.2.调试工具2.3.Firebug 0.引言 ArcGIS API for JavaScript是一款由Esri公司开发的用于创建WebGIS应用的JavaScript库。它允许开发者通过调…

stm32——hal库学习笔记(IWDG)

这里写目录标题 一、IWDG简介(了解)二、IWDG工作原理(熟悉)![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/ae55fb4f2d2f49edb468122f67de67e4.png)三、IWDG框图(熟悉)四、IWDG寄存器&#xff…

OpenHarmony系统解决方案 - 配置屏幕方向导致开机动画和Launcher显示异常

问题环境 系统版本:OpenHarmony-3.2-Release 问题现象 配置设备默认方向,例如修改为横屏显示,修改文件display_manager_config.xml的buildInDefaultOrientation参数值为2(Orientation::HORIZONTAL)。 源码中文件位于foundation/window/win…

HTML学习笔记——08:表单<form>

HTML <form> 元素表示文档中的一个区域&#xff0c;此区域包含交互控件&#xff0c;用于向 Web 服务器提交信息。 例如&#xff1a;登录页面。 作用&#xff1a;搜集不同类型的用户输入&#xff0c;并向服务器传送数据。 注意&#xff1a;表单本身并不可见&#xff01;…

CSS概述 | CSS的引入方式 | 选择器

文章目录 1.CSS概述2.CSS的引入方式2.1.内部样式表2.2.行内样式表2.3.外部样式表 3.选择器 1.CSS概述 CSS&#xff0c;全称Cascading Style Sheets&#xff08;层叠样式表&#xff09;&#xff0c;是一种用来设置HTML&#xff08;或XML等&#xff09;文档样式的语言。CSS的主要…

HTML世界之第二重天

目录 一、HTML 格式化 1.HTML 文本格式化标签 2.HTML "计算机输出" 标签 3.HTML 引文, 引用, 及标签定义 二、HTML 链接 1.HTML 链接 2.HTML 超链接 3.HTML 链接语法 4.文本链接 5.图像链接 6.锚点链接 7.下载链接 8.Target 属性 9.Id 属性 三、HTML …

node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查

文章目录 ⭐前言⭐ 功能设计与实现💖 node后端操作数据库实现增删改查💖 vue3前端实现增删改查⭐ 效果⭐ 总结⭐结束⭐前言 大家好,我是yma16,本文分享关于 node+vue3+mysql前后分离开发范式——实现对数据库表的增删改查。 技术选型 前端:vite+vue3+antd 后端:node k…
推荐文章