命名参数
考虑以下是我们的函数调用。
FindArea(120, 56);
在这里我们的第一个参数是长度(即 120),第二个参数是宽度(即 56)。我们正在通过该函数计算面积。以下是函数定义。
private static double FindArea(int length, int width)
{
try
{
return (length* width);
}
catch (Exception)
{
throw new NotImplementedException();
}
}
所以在第一个函数调用中,我们只是通过它的位置传递参数。对?
double area;
Console.WriteLine("Area with positioned argument is: ");
area = FindArea(120, 56);
Console.WriteLine(area);
Console.Read();
如果你运行它,你将得到如下输出。
现在它来了一个命名参数的功能。请参阅前面的函数调用。
Console.WriteLine("Area with Named argument is: ");
area = FindArea(length: 120, width: 56);
Console.WriteLine(area);
Console.Read();
这里我们在方法调用中给出命名参数。
area = FindArea(length: 120, width: 56);
现在,如果你运行此程序,你将得到相同的结果。如果我们使用命名参数,我们可以在方法调用中给出相反的名称。
Console.WriteLine("Area with Named argument vice versa is: ");
area = FindArea(width: 120, length: 56);
Console.WriteLine(area);
Console.Read();
命名参数的一个重要用途是,当你在程序中使用它时,它可以提高代码的可读性。它只是说明你的论点是什么,或者是什么?
你也可以给出位置参数。这意味着,位置参数和命名参数的组合。
Console.WriteLine("Area with Named argument Positional Argument : ");
area = FindArea(120, width: 56);
Console.WriteLine(area);
Console.Read();
在上面的例子中,我们传递了 120 作为长度,56 作为参数宽度的命名参数。
也有一些限制。我们现在将讨论命名参数的限制。
使用命名参数的限制
在指定了所有固定参数后,必须出现命名参数规范。
如果在固定参数之前使用命名参数,则会出现如下编译时错误。
在指定了所有固定参数后,必须出现命名参数规范