博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ref和out的使用及区别
阅读量:5748 次
发布时间:2019-06-18

本文共 937 字,大约阅读时间需要 3 分钟。

 1.  ref的使用:使用ref进行参数的传递时,该参数在创建时,必须设置其初始值,且ref侧重于修改;

  2. out的使用: 采用out参数传递时,该参数在创建时,可以不设置初始值,但是在方法中必须初始化,out侧重于输出;

注释:当希望方法返回多个值时,可以用out,并且一个方法中的参数可以有一个或多个out参数;使用 out 参数,必须将参数作为 out 参数显式传递到方法中,但是out 参数的值不会被传递到 方法中,且属性不是变量,不能作为 out 参数传递。

    ref是有进有出,而out是只出不进。

举例如下:

out的使用

   class Program

    {
        static void Main(string[] args)
        {

     string tmp;    //先声明,但不初始化

     User _user=new User();      

     _user.Name(out tmp);        //调用Name方法

              Console.WriteLine("{0}",tmp); //这时tmp的值为“在这里面赋值了”

              Console.ReadKey(true);

   }

     }

  class User{

    public void Name(out string tmps)

           {

       tmps="在这里面赋值了";

           }

      }

       使用out结果输出: 在这里面赋值了

 

 ref的使用

 

   class Program

    {
        static void Main(string[] args)
        {

     string tmp="传值之前";    //声明并初始化        这时如果输出tmp值为"传值之前"

          User _user=new User();

              _user.Name(ref tmp);

              Console.WriteLine("{0}",tmp);

              Console.ReadKey(true);

        }

    }

 

    class User {

         public void Name(ref string tmps)

         {

              tmps="传值之后";

         }

    }

    使用ref方法结果输出:传值之后

转载于:https://www.cnblogs.com/gygtech/p/9634813.html

你可能感兴趣的文章
SRE工程师到底是做什么的?
查看>>
解读:Red Hat为什么收购Ansible
查看>>
Ossim下的安全合规管理
查看>>
DelphiWebMVC框架下BPL热部署实现
查看>>
C++与MySQL的冲突
查看>>
siki学习之观察者模式笔记
查看>>
单元测试
查看>>
spring.net 继承
查看>>
ES6:模块简单解释
查看>>
JavaScript indexOf() 方法
查看>>
用Bootstrap写一份简历
查看>>
ZJU PAT 1023
查看>>
WMI远程访问问题解决方法
查看>>
从零开始学习IOS,(UILabel控件)详细使用和特殊效果
查看>>
Android开发历程_15(AppWidget的使用)
查看>>
阿花宝宝 Java 笔记 之 初识java
查看>>
7、设计模式-创建型模式-建造者模式
查看>>
我国古代的勾股定理
查看>>
Linux下的C编程实战
查看>>
[32期] html中部分代码与英语单词关系
查看>>