📜  C#4.0 命名和可选参数

📅  最后修改于: 2020-11-01 03:03:21             🧑  作者: Mango

C#命名和可选参数

C#命名参数

此功能使我们可以在函数调用时将参数名称与其值相关联。

当我们创建命名参数时,将按其传递顺序对参数进行求值。

它对我们有帮助,不必记住参数的顺序。如果知道参数名称,则可以按任何顺序传递参数名称。让我们来看一个例子。

C#命名参数示例

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#可选参数

在C#中,方法可能包含必需或可选参数。包含可选参数的方法不会在调用时强制传递参数。

这意味着我们在不传递参数的情况下调用方法。

可选参数在函数定义中包含一个默认值。如果我们在调用时未传递可选的参数值,则使用默认值。

注意:我们必须在参数列表的末尾定义可选参数。

C#可选参数示例1

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。让我们来看一个例子。

C#可选参数示例2

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

确保将所有可选参数放在参数列表的末尾。否则,编译器将引发编译时错误。让我们来看一个例子。

C#可选参数示例3

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