public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Button_Click(object sender, RoutedEventArgs e) { SubmitToCart(shouldGoBackToMake: true); } public void SubmitToCart(string giftFlag = "false", bool shouldGoBackToMake = false) { bool yy = shouldGoBackToMake; string xx = giftFlag; } }
谁能解释一下这个语法:
SubmitToCart(shouldGoBackToMake: true);
为指定的参数传参,而不是参数位置
已亲测,这个是可选参数,下面的方法声明时已初始化过参数,调用的时候可根据需要传参。。
private void Btn_CkParam_Click(object sender, EventArgs e)
{
AutoParam(param1: "hehe");
AutoParam(flag: true);
AutoParam("hehe", true);
}
private void AutoParam(string param1="default_1",Boolean flag=false)
{
MessageBox.Show(String.Format("参数1:{0}\n参数2:{1}",param1,flag));
}
3种调用发发都是可以的
public void SubmitToCart(string giftFlag = "false", bool shouldGoBackToMake = false){...}
这个方法的参数都给了默认值,为可选参数,即使你不给任何参数也可以调用此方法。
当调用此方法想给第二个参数赋值,就得再调用的时候指定参数名SubmitToCart(shouldGoBackToMake: true);
指定参数名称,可以按无序方式传参
foo(p1:100,p2:20,p3:"hello")