C# ref传参与out传参

news/2025/1/11 16:42:02/

在 C# 中,ref 和 out 都是用于传递参数的关键字

1、ref 关键字:

ref 用于将一个变量传递给方法,并允许方法修改该变量的值。
调用方法时,必须先初始化被 ref 修饰的变量,否则会编译错误。
方法内部可以不给 ref 参数重新赋值,但是如果赋值了,必须确保在方法返回前给 ref 参数赋值。
在方法调用之后,原始变量的值可能会被修改。

static void ChangeValue2(ref int value) {value += 20;Console.WriteLine("ref内部:" + value);//40
}int number = 20;
ChangeValue2(ref number);
Console.WriteLine("ref外部:" + number); //40

2、out 关键字:

out 也用于将一个变量传递给方法,允许方法修改该变量的值。
调用方法时,可以不初始化被 out 修饰的变量,因为传递给 out 的变量在方法内部必须被赋值。
在方法内部必须给 out 参数重新赋值,否则编译错误。
在方法调用之前,原始变量的值对于 out 参数没有影响,方法调用之后,out 参数中存储的值会被返回。

static string getName(out string f) {//可以让你正常获取return的同时多获取一部分。//其实这个f代表的是外部的name属性,有的时候需要把外部变量放到方法内部赋值f = "古力娜扎";return "迪丽热巴";
}// 调用out方法
// 如果方法上的形参使用了out修饰,那么需要传递一个相同类型的变量
string name = "";
string name2 = getName(out name);
Console.WriteLine(name); //古力娜扎  (这个是name的值)
Console.WriteLine(name2); //迪丽热巴 (这个是函数的返回值)

ref 和 out 关键字在用法上有些相似,都可以将变量传递给方法并允许方法修改变量的值。不同之处在于,ref 在方法调用之前必须初始化,而 out 不需要初始化,并且在方法调用之后,out 参数中存储的值会被返回。


http://www.ppmy.cn/news/1270874.html

相关文章

Win11 TensorRT环境部署

一、CUDA和CUDNN安装 cuda和cudnn网上有很多安装教程,这里列举了一些,就不详细说了,具体链接如下: csdn.net - CUDA安装教程(超详细) 原创 zhihu.com - 深度学习之CUDACUDNN详细安装教程 tencent.com - C…

一个程序员的养生指南

文章目录 一个程序员的养生指南 一个程序员的养生指南 大学毕业后几年,体重长得比工作年限还快,不到3年,增重将近20公斤,也不知道咋做到的。直到2019年年底,已经到了走路喘气,爬楼胸闷,下蹲头晕…

ChatGPT 成为 Nature 年度十大人物,首个非人类实体

文章目录 一、前言二、主要内容三、总结 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 2023 年即将结束,现在是时候回顾今年的重要科学进展了。12 月 13 日,著名科学期刊《Nature》刚刚发布了 2023 年度的十大人物&…

Tair(2):Tair安装部署

1 安装相关依赖库 yum install -y gcc gcc-c make m4 libtool boost-devel zlib-devel openssl-devel libcurl-devel yum:是yellowdog updater modified 的缩写,Linux中的包管理工具gcc:一开始称为GNU C Compiler,也就是一个C编…

俄罗斯军方计划用 Astra Linux 取代 Windows!

网络安全正在改变全球化的面貌,各国政府为了防范外国的间谍和破坏活动,正积极发展自己的技术。在这一趋势下,俄罗斯军方已经开始用 Linux 发行版 Astra Linux 替换 Windows 系统。 如何提高Linux系统安全性?提升Linux安全的关键策…

mysql CREATE DATABASE

DROP DATABASE IF EXISTS zengwenfeng;CREATE DATABASE zengwenfeng DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;USE zengwenfeng; 脚本天天少这些,天天找这段!

PPT插件-好用的插件-图形缩放-大珩助手

图形缩放 包括适合屏幕、适合宽度、适合高度、水平翻转、垂直翻转、指定角度,可同时对多个形状进行操作 适合屏幕 一键设置图像、文本、形状的长宽尺寸与当前幻灯片一致 适合宽度 一键设置图像、文本、形状的宽度尺寸与当前幻灯片一致 适合高度 一键设置图像…

PHP基础 - 循环与条件语句

循环语句 1)for循环: 重复执行一个代码块指定的次数。 for ($i = 0; $i < 5; $i++) { // 初始化 $i 为 0,每次循环后将 $i 值增加 1,当 $i 小于 5 时执行循环echo "The number is: $i \n"; // 输出当前 $i 的值并换行 }// 循环输出结果为: // The number …