2009-03-12 20 views
9

重複質問のNullableメソッドの引数は

Passing null arguments to C# methods

は、私は、.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... 
} 

もしそうでない場合、私はできることがありますか?

+0

私は検索しましたが、重複は出てこなかった、またはこれが答えました。皆さんありがとう。 –

答えて

17

はい、あなたが意図的にシェブロンを追加し、あなたが本当に意味と仮定:

public void myMethod(string astring, int? anint) 

anintは今HasValue性質を持つことになります。

7

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); 
14

のようなメソッドを呼び出すには、あなたが達成したいかに依存します。あなたが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型を渡したい場合は、よく、見他の答え。 ;)

+0

+1多型を使用する良い提案 –

+3

多相性ではありません –

+1

@Garry、そうですね。 –

関連する問題