编程语言
首页 > 编程语言> > 【C#基础概念】函数参数默认值和指定传参

【C#基础概念】函数参数默认值和指定传参

作者:互联网

最近在编写代码时发现介绍C#参数默认值不能像PL/SQL那样直接设置default,网上也没有太多详细的资料,自己琢磨并试验后整理成果如下:

1.默认参数设置

一般函数声明

public void FuncPara(string a,string b)

设置默认值

public void FuncPara(string a="specify by default a",string b= "specify by default b")

public void FuncPara(string a="specify by default",string b= "specify by default")
    {
        MessageBox.Show(a +"\n"+ b+"\n");
    }
private void button1_Click(object sender, EventArgs e)
    {
        FuncPara();
    }

此时调用函数将采用默认值

messagebox出来的是:

specify by default a

specify by default b

 

在调用时重写默认参数

public void FuncPara(string a = "specify by default a", string b = "specify by default b")
    {
        MessageBox.Show(a + "\n" + b + "\n");
    }
private void button1_Click(object sender, EventArgs e)
    {
        FuncPara( b: "specify by call");
    }

此时调用函数a将采用默认值,b的值在调用时被重写了

messagebox出来的是:

specify by default a

specify by call

 

3.参数传递时的顺序


原则先传顺序参数值,后传指定参数,没有指定参数的传值全部是按照顺序传递的
3.1顺序调用

这是最基本的参数调用方式,根据参数顺序传参,顺序参数在编写和调用时应当放在前面

编写函数首部时,有默认值参数一旦出现,后面的参数应当全部为有默认值的参数否则编译器会报错

 

public void FuncPara(string c,string a="specify by default",string b= "specify by default")

 

  调用时

 

 

 

FuncPara("c","a","b");
依次向参数c,a,b传值

错误写法

public void FuncPara(string a="specify by default",string c,string b= "specify by default")

3.2指定参数调用

你可以不按照顺序指定调用时的参数传值

public void FuncPara(string a="specify by default",string b= "specify by default")

只指定b,a采用默认值

FuncPara( b: "specify by call");

messagebox出来的是:

specify by default a

specify by call

也可以不按顺序:

 

 FuncPara( b: "specify by call",a:"sdfe");

标签:传参,FuncPara,string,default,函数参数,参数,默认值,specify
来源: https://www.cnblogs.com/cdaniu/p/15434481.html