C#学习篇之基础回顾(6)----- 方法和参数

方法

方法是将相关的语句进行组织并且执行一个任务的语句块,每个C#程序都至少有一个带有Main方法的类。

方法定义

访问修饰符 返回值类型 方法名(参数类型 参数)

{

         方法主体

}

参数

当调用带参数的方法时,常见的有三种向方法参数传递的方式:

(1)值参数:复制参数的实际值给方法的形参,当形参发生改变时不影响实参的值,保证了实参数据的安全。如:

//调用方法
Name(name);
//声明方法
public void Name(string name){ }

(2)引用参数:复制参数的内存地址引用给形参,当形参发生改变时实参也会发生改变。如:

//调用方法
Name(ref name);
//声明方法
public void Name(ref string name){ }

(3)输出参数:可以返回多个值。如:

//调用方法
Name(out name);
//声明方法
public void Name(out string name){ }

由于return只能返回一个值,如果想让一个方法返回多个值,可以有两种方式,一种是用引用参数传入多个参数进行直接修改,另一种则是用输出参数来返回多个值,那么这两种参数有什么区别呢,我们可以看一下代码实现:

        string name = "Xiao";
        string sex;
        int age=11;
        Program p=new Program();

        p.Name1(name);//1.值参数 参数传入时必须已赋值
        p.Name2(ref name);//2.引用参数 参数传入时必须已赋值
        p.Info(out sex, out age);//3.输出参数 参数传出时必须已赋值
            
        Console.Write("{0},{1},{2}",name, sex, age);

        ……

        public void Name1(string name)
        {
            name += "Hong";
        }
        public void Name2(ref string name)
        {
            name += "Ming";
        }
        public void Info(out string sex,out int age)
        {
            sex = "男";
            age = 20;
        }

运行结果:XiaoMing,男,20

可以看到值参数和引用参数在参数传入时必须已赋值,否则会报错,而输出参数在传入时无需赋值,但必须在方法中进行赋值

除了上述的常见参数类型,还有另外三种参数类型:

(1)参数数组:与上面三种参数需要严格一一对应不同的是,它允许零个或多个实参对应一个特殊的形参数组。声明时需要有params修饰符而在调用时不需要。如:

//调用方法
Name(FirstName,LastName);
//声明方法
public void Name(params string[] name){ }

(2)命名参数:与上面四种参数需要指定位置顺序不同的是,它允许通过指定参数的名字来以任意顺序列出实参,格式为形参:实参,顺序不能弄反。(.Net4.0开始支持)

//调用方法
Name(a:FirstName,b:LastName);
//声明方法
public void Name(string a,string b){ }

(3)可选参数:如果在方法声明中为参数提供默认值,则表明该参数是可选的。(.Net4.0开始支持)

//调用方法
Name(FirstName);
//声明方法
public void Name(string a,string b="York"){ }

猜你喜欢

转载自blog.csdn.net/York_New/article/details/82177795