不说废话,直接上代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ArgsDemo
{
/// <summary>
/// 可选参数和命名参数
/// </summary>
class TestArgs
{
static void Main(string[] args)
{
new TestArgs().Run();
}
private void Run()
{
Display(6); // 调用有 1 个参数的方法
Display(a: 99); // 调用有 1 个参数的方法
Display(aaaa: 99); // 调用有 2 个参数的方法,命名参数 aaaa 限制,
Display(6, 8); // 调用有 2 个参数的方法
Display(6, 8, 10); // 调用有 3 个参数的方法
Display(6, b: 9); // 调用有 2 个参数的方法,选择最贴近的
Display(6, c: 10); // 调用有 3 个参数的方法,命名参数 c 限制
Display(6, c: 12, b: 8); // 调用有 3 个参数的方法
// 方法中 a 为必选参数,位置不能改变
Display(c: 12, a: 8, b: 10); // 调用有 3 个参数的方法
// 命名参数可按照不同顺序传递实参
Console.ReadKey(true);
}
public void Display(int a)
{
Console.WriteLine("调用有 1 个参数的方法!");
Console.WriteLine("a = {0}", a);
Console.WriteLine();
}
/// <summary>
/// </summary>
/// <param name="aaaa">可选参数</param>
/// <param name="b">可选参数</param>
public void Display(int aaaa = 99, double b = 2)
{
Console.WriteLine("调用有 2 个参数的方法!");
Console.WriteLine("a = {0}, b = {1}", aaaa, b);
Console.WriteLine();
}
/// <summary>
/// </summary>
/// <param name="a">必选参数</param>
/// <param name="b">可选参数</param>
/// <param name="c">可选参数</param>
public void Display(int a, double b = 2, int c = 6)
{
Console.WriteLine("调用有 3 个参数的方法!");
Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c);
Console.WriteLine();
}
}
}
结果: