2016-12-21 79 views
1

我有以下給出的參數的函數。如何處理可空字符串作爲函數參數

public void myfunction(int a, string b){} 

我們能否通過傳遞只有第一個參數調用該函數和第二個參數是可選的(可爲空字符串)?

myfunction(5); 

如果是的話那怎麼樣。

+0

我使用的Visual Studio 2015年.. –

+0

@bigyanshr - ?''字符串不編譯。 'string'已經可以爲空,並且不能在'Nullable '中用作類型。 –

回答

3

其實你的問題在標題中有nullable這個術語有點令人困惑,同時你正在尋找一種方法default parameters/Optional parameters。這可以寫成如下所示:

public void myfunction(int a, string b = ""){} 

所以,你可以這樣調用myfunction(5);或類似myfunction(5,null);甚至這個:myfunction(5,"Something");

+0

你的第二個建議將不起作用,字符串已經可以爲空 –

+0

如果我們想將它作爲參數傳遞,字符串必須是非空的。 –

+0

它甚至不會編譯:)消息將是:字符串類型'必須是一個不可爲空的值類型,以便在泛型類型或方法中使用它作爲參數'T''可空' –

3

只是重載函數如下:

public void myfunction(int a, string b) 
{ 
    //do stuff 
} 

public void myfunction(int a) 
{ 
    myfunction(a,string.empty); 
} 

然後致電

myFuntion(5); 

否te:最好的做法是使用string.empty而不是null,所以在我的例子中已經表明了這一點。

相關問題