天天看點

關于C#類中方法的參數 ref,out,params...

            (2)引用參數(ref)

            (3)輸出參數(out)

                                                (4)數組參數(params)

            (5)可選參數 < 這個隻在C#4.0中才有,在編譯代碼時要注意選擇的版本号  >

對于值參數就不多說了,主要說一下引用參數、輸出參數和數組參數:

(1)引用參數 用ref來修飾,要注意它和值參數的差別是一個是資料的副本一個是資料的位址。是以,值參的變化不會影響到實際的資料而引用參數的變化就會影響到實際的資料;

static void Main(string[] args)
        {
            int i = 1;
            int j = 2;
            add(ref i,ref j);
            Console.WriteLine("i={0}",i);
            Console.WriteLine("j={0}",j);
            Console.Read();
        }
        private static void add(ref int i, ref int j)
        {
            i = i + j;
        }
           

它輸出的結果是: i=3

                                    j=2

(2)輸出參數 用 out 來修飾。以前我們學到的C或者是C++中的思想是,一個函數不可以實作多個傳回值的傳回,而這個正好解決了這個問題。看看例子吧

static void Main(string[] args)
        {
            int i, j;
            OutVa(out i,out j);
            Console.WriteLine("i={0}",i);
            Console.WriteLine("j={0}",j);
            Console.Read();
        }
        public static void OutVa(out int i, out int j)
        {
            i = 1;
            j = 2;
        }
           

它輸出的結果是: i=1

                                    j=2;

(3) 數組參數 用 params修飾。它傳遞的參數的個數是不确定的。一般在方法體中都通過循環的方法來處理數組參數。看看例子吧

static void Main(string[] args)
        {
            Test("a");
            Test("b","c");
            Test("e","f","g");
            Console.Read();
        }
        static void Test(params string[] args)
        {
            for (int i = 0; i < args.Length; i++)
            {
                Console.Write(args[i]+" ");
            }
           
        }
           

輸出的結果:a b c d e f g

至于其它的參數都比較簡單,這裡不再多說。