📅  最后修改于: 2020-11-01 03:03:21             🧑  作者: Mango
此功能使我们可以在函数调用时将参数名称与其值相关联。
当我们创建命名参数时,将按其传递顺序对参数进行求值。
它对我们有帮助,不必记住参数的顺序。如果知道参数名称,则可以按任何顺序传递参数名称。让我们来看一个例子。
using System;
namespace CSharpFeatures
{
public class NamedArgumentsExample
{
static string GetFullName(string firstName, string lastName)
{
return firstName + " " + lastName;
}
public static void Main(string[] args)
{
string fullName1 = GetFullName("Rahul", "Kumar"); // Without named arguments
string fullName2 = GetFullName(firstName:"Rahul", lastName:"Kumar"); // Named arguments
string fullName3 = GetFullName(lastName:"Rahul", firstName:"Kumar"); // Changing order
Console.WriteLine(fullName1);
Console.WriteLine(fullName2);
Console.WriteLine(fullName3);
}
}
}
输出量
Rahul Kumar
Rahul Kumar
Kumar Rahul
在C#中,方法可能包含必需或可选参数。包含可选参数的方法不会在调用时强制传递参数。
这意味着我们在不传递参数的情况下调用方法。
可选参数在函数定义中包含一个默认值。如果我们在调用时未传递可选的参数值,则使用默认值。
注意:我们必须在参数列表的末尾定义可选参数。
using System;
namespace CSharpFeatures
{
public class OptionalArgumentsExample
{
public static void Main(string[] args)
{
add(12,12); // Passing both arguments
add(10); // Passing only required argument
}
static void add(int a, int b = 10) // second parameter is optional
{
Console.WriteLine(a+b);
}
}
}
输出量
24
20
我们可以制作任意数量的可选参数s。让我们来看一个例子。
using System;
namespace CSharpFeatures
{
public class OptionalArgumentsExample
{
public static void Main(string[] args)
{
add(12,12); // Passing both arguments
add(12); // Passing one argument
add(); // Passing No argument
}
static void add(int a = 12, int b = 12) // Making all parameters optional
{
Console.WriteLine(a+b);
}
}
}
输出量
24
24
24
确保将所有可选参数放在参数列表的末尾。否则,编译器将引发编译时错误。让我们来看一个例子。
using System;
namespace CSharpFeatures
{
public class OptionalArgumentsExample
{
public static void Main(string[] args)
{
add(12,12); // Passing both arguments
add(12); // Passing one argument
add(); // Passing No argument
}
static void add(int a = 12, int b) // Making first parameter as optional
{
Console.WriteLine(a+b);
}
}
}
输出量
error CS1737: Optional parameters must appear after all required parameters