C#中的关键字out和ref的区别

目录

一、out

二、ref

三、拓展


一、out

在 C# 中,out 是一个关键字,通常用于方法参数,表示该参数是输出参数。使用 out 关键字的参数要求在方法内部必须被赋值,而这个参数的值会在方法返回时传递给调用者。可以理解为:通过 out 关键字,方法可以返回多个值。

1. out 参数的作用
通常,方法只能通过 return 语句返回一个值,但是有时候我们希望方法能够返回多个结果。这时就可以使用 out 参数,它允许你在方法中"输出"多个值。

2. out 参数的使用
out 参数需要在方法调用时进行传递,并且在方法内部必须赋值。如果没有给 out 参数赋值,编译器会报错。

简单来说就是我们可以通过out获取值,而且是多个值!并且要记住他的初始化一定不要赋值,就是不需要初始化,只要声明类型即可!在方法中一定要赋值!!!

cs 复制代码
 public class Program
{
    static void Main(string[] args)
    {
        int a;
        p1(out a);
           Console.WriteLine(a);
    }
    public static void p1(out int b)
    {
        //形参随你取名
        b = 22;
    }
}

二、ref

ref的重点是可以修改值!!!ref要记住他的初始化一定要赋好值,并且可以在方法内部修改值,当然了也可以不用修改值!

cs 复制代码
 public class Program
{
    static void Main(string[] args)
    {
        int a=22;
        p1(ref a);
           Console.WriteLine(a);
    }
    public static void p1(ref int b)
    {
        //形参随你取名
        b = 23;
    }
}

三、拓展

(1)我们经常可以用out来判断类型转换是否成功,比如说我们输入一个字符串,然后判断他是不是可以转换成int型

cs 复制代码
 static void Main(string[] args)
 {
     String s = Console.ReadLine();
     if(int.TryParse(s,out int n)){
         Console.WriteLine(n);
     }
     else
     {
         Console.WriteLine("请输入整数数字!");
     }
     
 }
相关推荐
byte轻骑兵3 分钟前
【C++类和数据抽象】复制构造函数
开发语言·c++
孞㐑¥17 分钟前
C++之异常
开发语言·c++·经验分享·笔记
多多*17 分钟前
非关系型数据库 八股文 Redis相关 缓存雪崩 击穿 穿透
java·开发语言·jvm·数据库·redis·缓存·nosql
CoderCodingNo23 分钟前
【GESP】C++三级练习 luogu-B2114 配对碱基链
开发语言·c++
敲代码的瓦龙26 分钟前
C++?动态内存管理!!!
c语言·开发语言·数据结构·c++·后端
Ronin3051 小时前
【C++】13.list的模拟实现
开发语言·数据结构·c++·list
Star abuse1 小时前
Python爬虫课程实验指导书
开发语言·爬虫·python
foenix661 小时前
PicoVR眼镜在XR融合现实显示模式下无法显示粒子问题
android·unity·c#·xr·pico
时光话1 小时前
Lua 第12部分 日期和时间
开发语言·lua
Fency咖啡1 小时前
《代码整洁之道》第6章 对象和数据结构 - 笔记
开发语言