函数调用时,参数带形参及冒号

看到下面的语法,其他语言都没见过这种语法

int GetValue(string prompt, int min, int max)
{
    int result;
    do
    {
        result = SnapsEngine.ReadInteger(prompt);
    } while (result < min || result > max);
    return result;
}
int age = GetValue(prompt: "Enter your age in years", min: 0, max: 100);
int height = GetValue(prompt: "Enter your height in inches", min: 30, max: 96);

然后在stack overflow上看到使用冒号的各种情形:

https://stackoverflow.com/questions/17034475/in-c-sharp-what-category-does-the-colon-fall-into-and-what-does-it-really  

作用就是,指定形参名:

Console.WriteLine(value: "Foo");

value一定要与声明中的形参名一致,不能改成其他名称,否则出错,所以, 猜测就是,冒号前的是形参名,冒号后的是实参,如果不用这种写法,参数顺序一定不能乱,如果使用这种语法,对参数位置没有要求,可以随意写。

posted on 2019-12-21 11:18  jshchg  阅读(2903)  评论(0编辑  收藏  举报

导航