簡體   English   中英

如何在C#中跳過可選參數?

[英]How to skip optional parameters in C#?

例:

public int foo(int x, int optionalY = 1, int optionalZ = 2) { ... }

我想這樣稱呼它:

int returnVal = foo(5,,8); 

換句話說,我想提供xz ,但我想使用Y的默認值, optionalY = 1.

Visual Studio不喜歡,,

請幫忙。

如果這是C#4.0,則可以使用命名參數功能:

foo(x: 5, optionalZ: 8); 

有關更多信息,請參閱此博客

在C#4.0中,您可以命名在跳過默認值之后發生的參數,如下所示:

int returnVal = foo(5, optionalZ: 8);

這稱為命名參數 其他幾種語言提供了這一功能,並且通常使用語法foo(5, optionalZ=8)代替它,這對於了解何時閱讀其他語言的代碼很有用。

另一種提供選擇參數的動態方法是在類中實現方法,並為類構造函數提供命名參數。 為什么不在這里提到的同一行代碼上添加對方法的調用: 如何定義命名參數C#

var p = new PersonInfo {Name =“Peter”,Age = 15} .BuildPerson();

這是一個遲到的答案,但對於那些進入這個問題的人來說。 也可以使用Overloads,它使用與方法/函數相同的名稱,但使用不同的參數集。

EA

int SummAll (int a=0, int b=1, int c=2)
{return a+b+c;}

int SumAll (int a=0;int c=10) //skipping B 
{return a+c; }

這種模式等同於我們可以瀏覽函數變體的intellicense。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM