• Ref 和 Out 区别(演练代码)


    一、代码

     今天就总结Ref和Out 的总结,这东西,也是经常面试过程中,笔试经常考的,比如:请简述Ref和Out 的区别,或者通过一段代码让你计算这过程的结果。。。。

    Out代码实例:::

     static void Main(string[] args)
            {
                string str = "初始化赋值";
                MethodOut(out  str);
                Console.ReadKey();
            }
    
            /// <summary>
            /// 只出不进  原来out参数在进入方法的时候,C#会自动清空它的一切引用和指向,所以在上面的out例子中,必需先要为str参数赋值
            /// </summary>
            /// <param name="str"></param>
            public static void MethodOut(out string str)
            {
    
                str = "Hello World!  ---out";
                Console.WriteLine(str);
            }

    显示结果

    Ref代码实例:::

      //ref参数的参数必须最先初始化,
            static void Main(string[] args)
            {
                string str = "初始化赋值";
                MethodRef(ref str);
    
                Console.ReadKey();
            }
    
            /// <summary>
            /// 是有进有出  ref参数在使用前必需初始化,而out不需要。
            /// </summary>
            /// <param name="i"></param>
            public static void MethodRef(ref string str)
            {
                str = "Hello World! --Ref";
                Console.WriteLine(str);
            }

    显示结果:::

    注意事项:::

    1、Ref使用中,初始化,必须赋值,否则报错

     2、Ref使用中,输出的时候,不需要赋值(注意:参数输入的时候,必须赋值)

     3、OUT使用中,初始化没有赋值,不会报错

    4、OUT使用中,输出结果的时候必须赋值,否则会报错

     

    二、总结

     1、从上测试结果来看,可以验证ref 和 out 都是传递地址,都会改变具体的值,ref 是有进有出,Out 是 只出不进,

     2、ref可以把参数的数值传递进函数,

     3、out是把参数清空,就是说你无法把一个数值从out传递进去,out进去后,参数的数值为空(参数不能拿到具体数值),所以你必须初始化一次!

    • 博主是利用读书、参考、引用、抄袭、复制和粘贴等多种方式打造成自己的纯镀 24k 文章,请原谅博主成为一个无耻的文档搬运工!
    • 小弟刚迈入博客编写,文中如有不对,欢迎用板砖扶正,希望给你有所帮助。
  • 相关阅读:
    ASP.NET WebApi项目框架搭建(六):数据库ORM之Sqlsugar
    sqlsugar与数据库之间的相互操作
    C# SqlSugar框架的学习使用(一)SqlSugar简介及创建
    SqlSugar直接执行Sql
    在项目中迁移MS SQLServer到Mysql数据库,实现MySQL数据库的快速整合
    SqlSugar 简易操作数据库
    C# SqlSugar框架的学习使用(二) 类的生成及增删改查的应用
    使用开源框架Sqlsugar结合mysql开发一个小demo
    devops起源的各种ops概念
    STC8H开发(四): FwLib_STC8 封装库的介绍和注意事项
  • 原文地址:https://www.cnblogs.com/lrzr/p/7290726.html
Copyright © 2020-2023  润新知