个性化阅读
专注于IT技术分析

在C#中使方法参数可选的不同方法有哪些?

顾名思义, 可选参数不是强制性参数, 它们是可选参数。它有助于排除某些参数的参数。或者我们可以说在可选参数中, 没有必要在方法中传递所有参数。此概念在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

赞(0) 打赏
未经允许不得转载:srcmini » 在C#中使方法参数可选的不同方法有哪些?
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

微信扫一扫打赏