加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
022-命名参数.cs 1.26 KB
一键复制 编辑 原始数据 按行查看 历史
using System;
namespace _022_命名参数
{
class Program
{
// 可选参数
static void Foo(int x = 0, int y = 0)
{
Console.WriteLine(x + "," + y);
}
static void Main(string[] args)
{
Foo(x: 1, y: 2);// 1, 2
// 命名参数能按任意顺序出现
// 下面两种调用Foo方法在语义上是一样的:
Foo(x: 1, y: 2);
Foo(y: 2, x: 1);
// 不同的是参数表达是按调用端参数出现的顺序计算。通常,这只对相互作用的局部表达式有所不同。
// 像下面的代码,它将输出 0, 1
int a = 0;
Foo(y: ++a, x: --a);
// 命名参数和可选参数可以混合使用
Foo(1, y: 2);
// 然而,这里有规定:按位置的参数必须出现在命名参数之前,因此不能这样调用Foo方法
Foo(x: 1, 2); // 编译时错误,、、我自己测试能输出???why
Bar(d: 3);
Console.ReadKey();
}
static void Bar(int a = 0, int b = 0, int c = 0, int d = 0)
{
Console.WriteLine($"{a},{b},{c},{d}");
}
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化