顾名思义, 可选参数不是强制性参数, 它们是可选参数。它有助于排除某些参数的参数。或者我们可以说在可选参数中, 没有必要在方法中传递所有参数。此概念在C#4.0中引入。在这里, 我们讨论实现可选参数的不同方法。在C#中, 有4可选参数的不同实现类型如下:
通过使用默认值:
你可以使用默认值来实现可选参数。这是实现可选参数的最简单, 最简单的方法。这样, 你只需在方法定义中简单地用其默认值定义可选参数即可。并始终记住, 可选参数是方法的参数列表中的最后一个参数。在默认值方法中, 当你不传递可选参数的值时, 可选参数将使用其默认值, 而当你为可选参数传递参数时, 它们将采用传递的值而不是其默认值。
示例:在这里, 我们有两个常规参数, 即str1和str2, 以及一个可选参数, 即str3及其默认值。在这里, 当我们不将任何值传递给可选参数时, 并且当我们在方法调用中传递可选参数的值时, 可选参数将使用此默认值, 然后它将采用传递的值。
//C# program to illustrate how to create
//optional parameters using default value
using System;
class GFG {
//Method containing optional parameter
//Here str3 is a optional parameter
//with its default value
static public void my_add( string str1, string str2, string str3 = "srcmini" )
{
Console.WriteLine(str1 + str2 + str3);
}
//Main method
static public void Main()
{
my_add( "Welcome" , "to" );
my_add( "This" , "is" , "C# Tutorial" );
}
}
输出如下:
Welcometosrcmini
ThisisC# Tutorial
通过使用
方法重载
:
你可以通过使用方法重载来实现可选参数的概念。在方法重载中, 我们创建名称相同但参数列表不同的方法。此方法不是实现可选参数的纯粹方法, 但是可以使用此方法来实现可选参数的概念。
示例:这里, 我们有两个名称相同的方法, 但是这些方法的参数列表不同, 即第一个my_mul方法仅接受一个参数, 而第二个mu_mul方法则接受三个参数。
//C# program to illustrate how to create
//optional parameters using method overloading
using System;
class GFG {
//Creating optional parameters
//Using method overloading
//Here both methods have the same
//name but different parameter list
static public void my_mul( int a)
{
Console.WriteLine(a * a);
}
static public void my_mul( int a, int b, int c)
{
Console.WriteLine(a * b * c);
}
//Main method
static public void Main()
{
my_mul(4);
my_mul(5, 6, 100);
}
}
输出如下:
16
3000
通过使用OptionalAttribute:
你可以通过使用OptionalAttribute实现可选参数。要首先实现可选参数, 你需要添加
System.Runtime.InteropServices
程序中的名称空间, 然后使用方括号内的Optional关键字在方法中参数定义之前创建一个可选参数。 OptionalAttribut的默认值为零。
示例:在这里, 我们使用OptionalAttribute创建一个可选参数, 这里num2是my_mul方法中的可选参数。
//C# program to illustrate how to create
//optional parameters using OptionalAttribute
using System;
using System.Runtime.InteropServices;
class GFG {
//Method containing optional parameter
//Using OptionalAttribute
static public void my_mul( int num, [ Optional ] int num2)
{
Console.WriteLine(num * num2);
}
//Main Method
static public void Main()
{
my_mul(4);
my_mul(2, 10);
}
}
输出如下:
0
20
By
参数
关键词:
你可以使用params关键字实现可选参数。它允许你将任意数量的参数传递给方法。但是你只能对一个参数使用params关键字, 并且该参数是方法的最后一个参数。此方法不是实现可选参数的纯粹方法, 但是可以使用此方法来实现可选参数的概念。
示例:此处, 使用params关键字创建可选参数。在这里, a1是可选参数, 你可以在其中从零到最多传递任意数量的变量。
//C# program to illustrate how to create
//optional parameters using params keyword
using System;
class GFG {
//Method containing optional
//parameter Using params keyword
static public void my_mul( int a, params int [] a1)
{
int mul = 1;
foreach ( int num in a1)
{
mul *= num;
}
Console.WriteLine(mul * a);
}
//Main method
static public void Main()
{
my_mul(1);
my_mul(2, 4);
my_mul(3, 3, 100);
}
}
输出如下:
1
8
900
评论前必须登录!
注册