C#方法、方法重载、参数修饰符 C#学习杂记(七)

1、定义方法与调用

定义方法一般包括:修饰符,返回类型,方法名,参数,方法体
下面示例中,定义了一个无参数无返回值的方法,与一个有参数有返回值的方法,以及如何在主函数中调用,为了演示方便,在方法前加上了修饰符static,表示这个方法是静态方法,可以直接调用,如果不是静态方法则需要使用类对象进行调用。

        static void Main(string[] args)//程序入口,主函数
        {
    
    
            //无参无返回值的方法,直接调用即可
            outprint();

            //调用有参数的方法,需传入实参
            //如需得到返回值,一般需要一个变量来接受
            int result = add(5, 6);
        }

        static void outprint()//修饰符 返回类型 方法名
        {
    
    
            Console.WriteLine("hello !");//方法体
        }

        static int add(int a, int b)//修饰符 返回类型 方法名 形参
        {
    
    
            int s = a + b;
            return s;//返回值
        }

2、方法重载

本质上是多个方法,但是方法名相同,且方法的参数个数或者参数类型不同,构成重载关系,调用时只需要传入不同的参数,就可以使用重载执行不同的方法体。

		static void Main(string[] args)
        {
    
    
            //根据传入的实参不同,执行不同的方法体
            methodCW("龙傲天");
            methodCW(55);
        }
        static void methodCW(string str)
        {
    
    
            Console.WriteLine("这是一个字符串:" + str);
        }
        static void methodCW(int a)
        {
    
    
            Console.WriteLine("这是一个整形数字:" + a);
        }

程序执行输出结果如下在这里插入图片描述
从输出结果可以看出执行了不同的方法体。

3、参数修饰符

(1)ref 引用参数
用于需要对实参本身进行操作的时候

        //ref 是引用变量地址,而普通的参数 int a 只是复制传入的实参,无法直接对变量本身进行更改
        static void ExChange(ref int a, ref int b)
        {
    
    
            int temp = a;
            a = b;
            b = temp;
        }

(2)out 输出参数
主要用于获取多个返回值,在方法返回前必须赋值
解决了C#方法只能有一个返回值的问题

        static void Main(string[] args)
        {
    
    
            int s;
            int c = methodaa(5, 6, out s);//调用时,s 无需赋值
            Console.WriteLine(c+","+s);
        }
        //out 修饰符 也是引用变量地址
        //并且out 参数,在方法返回前必须赋值
        //这样就解决了C#方法只能有一个返回值的问题
        static int methodaa(int a, int b, out int s)
        {
    
    
            s = a + b;
            return a - b;
        }

(3)params 参数数组
可以实现,传入任意个参数,没有参数个数的限制

        static void Main(string[] args)
        {
    
    
            float sum = GetSum(2, 1.2f, 3.1f);
        }
        static float GetSum(params float[] array)
        {
    
    
            float sum = 0;
            for (int i = 0; i < array.Length; i++)
            {
    
    
                sum += array[i];
            }
            return sum;
        }

猜你喜欢

转载自blog.csdn.net/qq_40385747/article/details/109048821