web-dev-qa-db-ja.com

C#のnull可能なメソッド引数

重複する質問

C#メソッドにnull引数を渡す

これを.Net 2.0のC#で実行できますか?

public void myMethod(string astring, int? anint)
{
//some code in which I may have an int to work with
//or I may not...
}

そうでない場合、私ができる類似のものはありますか?

13
One Monkey

はい、シェブロンを意図的に追加し、本当に意味があると仮定します。

public void myMethod(string astring, int? anint)

anintHasValueプロパティが追加されました。

22
roryf

あなたが達成したいものに依存します。 anintパラメータを削除できるようにするには、オーバーロードを作成する必要があります。

public void myMethod(string astring, int anint)
{
}

public void myMethod(string astring)
{
    myMethod(astring, 0); // or some other default value for anint
}

これで次のことができます。

myMethod("boo"); // equivalent to myMethod("boo", 0);
myMethod("boo", 12);

Null可能なintを渡したい場合は、他の回答を参照してください。 ;)

16
Inferis

C#2.0では、次のことができます。

public void myMethod(string astring, int? anint)
{
   //some code in which I may have an int to work with
   //or I may not...
}

そして、メソッドを次のように呼び出します

 myMethod("Hello", 3);
 myMethod("Hello", null);
8
Dead account