网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

out和ref-我的理解

 out和ref

成都创新互联公司是一家专业提供象山企业网站建设,专注与成都网站建设、网站制作、HTML5、小程序制作等业务。10年已为象山众多企业、政府机构等服务。创新互联专业网站制作公司优惠进行中。

           相同点:

凡是使用了这两个修饰的,都是引用传递。

           不同点:

out 侧重于输出的参数,也就是调用方法是为了通过参数的方式获得值。通常在方法中,需要返回多个值的时候使用。所以,out参数必须在方法返回(结束之前)赋值。

 *out有种“醉翁之意不在酒”的感觉。调用使用了含out参数的函数,目的是为了之后,拿出out修饰的那个变量,而不在于之前它的初值是什么,即便当初赋值了,也无妨。

ref 侧重于修改,调用方法是为了在方法中修改这个变量。所以,ref参数必须在传入之前就赋值。
 *如同每个月都会发工资,然后你有计划地消费一样。“工资”相当于那个被ref修饰的变量。
 
out具体代码实现:
...
      static void Main(string[] args)
        {
            Console.WriteLine("请输入你的登录名");
            string name = Console.ReadLine();
            string msg;//在这里,赋值也无妨,但是属于多余。
 
            OutTest(name, out msg);
 
            Console.WriteLine("使用调用了OutTest函数后的变量msg,msg的值是" + msg);
 
            Console.ReadKey();
 
        }
      static void OutTest(string logainName, out string message)
        {
        //在这个函数中,out修饰的参数,必须被赋值。否则,完成该函数,无法拿出对应的值!
            if (logainName == "JamesLiang")
            {
                message = "登录成功!";
            }
            else
            {
                message = "登录失败了";
            }
        }
 
ref具体代码实现:
...
      static void Main(string[] args)
        {
            int salary = 3000;//使用之前,必须赋值!
 
            RefTest1(ref salary);
            RefTest2(ref salary);
            RefTest3(ref salary);
 
            Console.WriteLine("最终薪水还有" + salary.ToString());
       }
       static void RefTest1(ref int m)
        {
            m = m - 100;
            Console.WriteLine("调用RefTest1方法,薪水还有" + m.ToString());
        }
 
        static void RefTest2(ref int m)
        {
            m = m - 200;
            Console.WriteLine("调用RefTest2方法,薪水还有" + m.ToString());
        }
        static void RefTest3(ref int m)
        {
            m = m - 300;
            Console.WriteLine("调用RefTest3方法,薪水还有" + m.ToString());
 
        }

本文标题:out和ref-我的理解
网址分享:http://bjjierui.cn/article/igigpi.html

其他资讯