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         }
  • 相关阅读:
    EntityFramework4.5使用Expression类创建动态查询及动态查询导航属性
    EF 5.0 帮助类
    EF异常:“System.InvalidOperationException”类型的未经处理的异常在 mscorlib.dll 中发生
    EF框架学习手记
    Entity Framework 学习
    C#特性-表达式树
    LINQ to SQL 运行时动态构建查询条件
    一点css 基础
    JQuery 判断复选框是否选中
    Asp.Net Server.MapPath()用法
  • 原文地址:https://www.cnblogs.com/CeasarH/p/9165382.html
Copyright © 2011-2022 走看看