天天看点

温故而知新(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来表示全局变量