是否可以在方法中声明可选参数?
例如,在delphi中,我可以执行以下操作:
procedure Test(p1:integer;p2:integer;p3:integer = 2;p4:integer = 4)
Run Code Online (Sandbox Code Playgroud)
当我调用该函数时,我可以用四个参数或两个参数调用它:
Test(2,3); //p3 = 2,p4 = 4.
Test(2,3,4,5); //p3 = 4,p4 = 5;
Run Code Online (Sandbox Code Playgroud)
这怎么可能在C#中?
我担心这在C#1到3中是不可能的.然而,好消息是,因为它是一个非常需要的功能(虽然肯定有些人宁愿不看它),微软终于决定添加它到C#4.
C#4语法如下:
public static void SayHello(string s = "Hello World!")
{
Console.WriteLine(s);
}
Run Code Online (Sandbox Code Playgroud)
用法:
SayHello(); // Prints "Hello World!"
SayHello("Hello."); // Prints "Hello."
SayHello(s: "Hello."); // Prints "Hello."
Run Code Online (Sandbox Code Playgroud)
(最后一个示例使用命名参数,在这种情况下实际上不是必需的,但是当您有多个可选参数时会有帮助.)