c#【OUT/REF】--乌云后依然是灿烂的晴天

OUT

OUT:方法内赋初值,只传出,用于返回多个值
out这个单词是“出去”的意思,所以参数加out就是将方法里面赋的那个值传到外面去了,方法外面赋不赋值都不起作用,所以说out只能将在方法里面赋的初值传出去,但不能将外面赋的值传入。
方法中的参数需要用out修饰,调此方法的时候也要用out修饰,ref也是一样

		    int num1;
            int num2 = 70;
            int numsum = show(out num1,num2);
            Console.WriteLine(num1 );
            Console.WriteLine(num2);
            //out修饰方法的参数了,那么在方法外面可以不给这个参数赋值,
            //但是方法里面必须给这个out修饰符的参数赋初值
            //另外,参数加out,是把这个方法中的参数的值传到方法外面去了
        }
        public static int show(out int number1,int number2)
        {
            number1 = 40;
            return number1 + 10;
        }
        //num1=40
        //num2=70

REF

方法外赋初值,传入传出
out只能把值给传出去,但是ref可以传入也可以传出。传入方法中的参数在外面被赋值。

 			int number1 = 30;
            int number2 = 50;
            int sum = show(ref number1, ref number2);
            Console.WriteLine("{0},{1},{2}", number1, number2, sum);
            Console.ReadKey();
            //ref用的时候必须要给这个变量赋初值,和out有区别,out可以把方法里的值传出去
            //ref可以把值传到方法里,又可以把值传到方法外
  public static int show(ref int num1, ref int num2)
        {
            num1 = 100;
            num2 = 200;
            return num1 + num2;
        }
        

静态方法与非静态方法

静态方法与非静态方法的区别:

1.static方法是类中的一个成员方法,属于整个类,即不用创建任何对象也可以直接调用。static方法内部只能出现static变量和其他static方法,而且static方法还不能使用this等关键字(this指的是当前的对象),因为它是属于整个类。

2.静态方法效率上要比实例化高,静态方法的缺点是不自动进行销毁,而实例化的则可以做销毁。

3.静态方法和静态变量创建后始终使用同一块内存,而使用实例的方式会创建多个内存。
在这里插入图片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章