zoukankan      html  css  js  c++  java
  • C#基础_关键字out、ref(十二)

    out、 ref 关键字的作用:

      一个函数中,使用out 和 ref 作为形参的关键字,那么在函数体中只要修改过这个形参,之前调用这个函数
     时赋给对应的形参的也会改变,原因: 使用out ref修饰的形参是引用类型,而不是值类型也就是说他们所存储的是地址而不是值类型。值类型变成了引用类型。

    out、ref关键字区别:

      out 关键字:1.out表示多余返回值。

            2.out修饰的变量,方法内部必须赋值

                3.out修饰的参数,传入变量,可以是没有赋值的,因为在方法中必须赋值

               4.使用情景:当一个方法中需要多个返回值,如果是相同类型也可以用数组来做,如果是不同类         型的情况,需要out

       ref关键字: 1. ref修饰参数,方法内部可以什么也不做,可以不去赋值

            2.ref 参数,在传值前,必须是赋值过的,和out相反

          总结:out只用来将值从方法中传出,不管传入的什么值,out都会重新赋值,

              ref修饰,需要初始值,方法中可以赋值也可不赋值

    注意:调用out,ref修饰的参数的时候,传入实际参数的时候,前边也要加上out 或者ref

    示例:交换两个数

     1    static void Main(string[] args)
     2         {
     3 
     4             int num1 = 10;  //要先赋值
     5             int num2 = 20;
     6             Console.WriteLine("num1 = {0},num2 = {1}",num1,num2);
     7             Change(ref num1,ref num2);
     8             Console.WriteLine("num1 = {0},num2 = {1}", num1, num2);
     9             Console.ReadKey();
    10         }
    11 
    12 
    13         static void Change(ref int a, ref int b)
    14         {
    15             int temp = a;
    16             a = b;
    17             b = temp;
    18         }

    out示例:

     1         static void Main(string[] args)
     2         {
     3             int num1 ;
     4             Test( out num1);  //out 修饰, num1可以不赋值
     5             Console.WriteLine("num1 = {0}",num1);
     6         }
     7 
     8 
     9 
    10         public static void Test(out int a)
    11         {
    12             a = 10;
    13         }
  • 相关阅读:
    pagehelper 分页不生效,总页数总是1解决方案
    SpringBoot--⼯具表达式对象
    H5中input输入框tppe为date时赋值(回显)
    img标签无法显示src中名字中带有中文的图片的问题
    SpringBoot---条件(th:if)
    SpringBoot——静态资源映射规则
    SpringBoot——HelloWorld
    《从零开始学架构》读后感
    《从零开始学架构》笔记——第四部分:架构实战
    《从零开始学架构》笔记——第三部分:可扩展架构模式
  • 原文地址:https://www.cnblogs.com/CeasarH/p/9165382.html
Copyright © 2011-2022 走看看