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.靜態方法和靜態變量創建後始終使用同一塊內存,而使用實例的方式會創建多個內存。
在這裏插入圖片描述

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