码迷,mamicode.com
首页 > Windows程序 > 详细

c# ref与out的区别

时间:2016-01-19 09:09:51      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:

相同点:都是输出参数

不同点:

ref:

1、必须初始化,即:必须赋初始值;

2.有进有出;

3、用在需要被调用的方法修改调用者的引用的时候。

4、是传递参数的地址

out:

1.不需要初始化,即:不需要赋初始值;

2、只出不进;

3、用在需要retrun多个返回值的地方;

4、返回值;

通过代码更直观的看出它们的区别:

class Program
    {
        static void Main(string[] args)
        {
          //num1,num2,必须赋值
            int num1 = 10;
            int num2 = 5;
            Exchage(ref num1,ref num2);//调用方法,必须在变量前,必须加ref关键字
        
        }
  /// <summary>
        /// 使用ref方法,参数必须加ref关键字
        /// </summary>
        /// <param name="num1"></param>
        /// <param name="num2"></param>
        private static void Exchage(ref int num1,ref int num2)
        {
            //交换前
                Console.WriteLine("num1的值:{0};num2的值:{1}", num1, num2);
                int temp = num1;
                num1 = num2;
                num2 = temp;
                //交换后
                Console.WriteLine("num1的值:{0};num2的值:{1}", num1, num2);
                Console.ReadKey();
        }

  

class Program
    {
        static void Main(string[] args)
        {
        int sum;//不需赋值,即使赋值,也会被覆盖
            NumSum(10,5,out sum);
            Console.Write(sum);
            Console.ReadKey();
        }
   /// <summary>
        /// 求和
        /// </summary>
        /// <param name="num1"></param>
        /// <param name="num2"></param>
        /// <param name="sum"></param>
        private static void NumSum(int num1,int num2,out int sum)
        {
            sum = num1 + num2;

        }
}

  

c# ref与out的区别

标签:

原文地址:http://www.cnblogs.com/shouce/p/5141032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!