可選引數

考慮前面是我們的函式定義與可選引數。

private static double FindAreaWithOptional(int length, int width=56)
       {
           try
           {
               return (length * width);
           }
           catch (Exception)
           {
               throw new NotImplementedException();
           }
       }

這裡我們將 width 的值設定為可選,並將值設定為 56.如果你注意,IntelliSense 本身會顯示可選引數,如下圖所示。

StackOverflow 文件

Console.WriteLine("Area with Optional Argument : ");
area = FindAreaWithOptional(120);
Console.WriteLine(area);
Console.Read();

請注意,我們在編譯時沒有收到任何錯誤,它將為你提供如下輸出。

StackOverflow 文件

使用可選屬性

實現可選引數的另一種方法是使用 [Optional] 關鍵字。如果未傳遞可選引數的值,則將該資料型別的預設值分配給該引數。Optional 關鍵字存在於“Runtime.InteropServices”名稱空間中。

using System.Runtime.InteropServices;  
private static double FindAreaWithOptional(int length, [Optional]int width)
   {
       try
       {
           return (length * width);
       }
       catch (Exception)
       {
           throw new NotImplementedException();
       }
   } 

area = FindAreaWithOptional(120);  //area=0

當我們呼叫函式時,我們得到 0,因為第二個引數沒有傳遞,int 的預設值是 0,因此乘積為 0。