天天看點

溫故而知新(4)——C#函數

1.簡單的函數

關鍵字:static,void

如果有傳回值,必須在函數結束前return 傳回值

參數一定要比對

數組也可以作為參數傳遞,數組中的元素類型一緻。

public static void ask(params int[] arg)
        {
            //todo..
        }
           

2.引用參數和值參數

ref,out都是用來修飾參數的。

ref和out都可以在方法中改變參數的值。

ref需要在方法調用前初始化好參數,而out不用。

如果使用out,必須在方法中初始化out修飾的參數。

static void Main(string[] args)
        {
            int a = ;
            int b;
            Console.WriteLine(plus(ref a,out b));
            Console.WriteLine(a);
            Console.WriteLine(b);
            Console.ReadKey();
        }


        public static int plus(ref int a,out int b)
        {

            b = ;
            a = a - ;       
            b = b - ;
            return ;
        }
           

輸出:

溫故而知新(4)——C#函數

可見,參數在經過函數調用後,已經改變了初始的值。

3.參數的作用域

在函數中,給定的變量有一個作用域,在這個作用域外是不能通路該變量的。比如:

{
            string mystring = "456";
            Console.WriteLine(mystring);
            Console.WriteLine(Program.mystring);
            Console.ReadKey();
        }
           

main()方法中的mystring變量隻能在該方法中使用。

如果參數定義在函數内部的,稱為局部變量。還有一種叫全局變量,如下:

static string mystring="123";
        static void Main(string[] args)
        {
            string mystring = "456";
            Console.WriteLine(mystring);
            Console.WriteLine(Program.mystring);
            Console.ReadKey();
        }
           

可見在main()函數之外已經定義了一個mystring參數,在main函數中可以直接調用。如果全局變量和局部變量名稱相同,則用program.mystring來表示全局變量