2016-03-19 15 views
1

を通過した引数を確認してください。オプションのパラメータは、私はこのようなクラスのコンストラクタを持って

public Script(string scriptName, [Optional] ICollection<Tuple<string, bool>> internalFunctions, [Optional] long randomIdentifier) { } 

だから、どのようにそれが可能な確認方法は、randomIdentifierまたはinternalFunctionsに渡された何かでしたか? ので、

new Script("test1") 

または

new Script("test1", null) 

または

new Script("test1", null, 1) 

と呼ばれていましたか?

ありがとうございます。

答えて

1

値が明示的に渡されていない場合は、それらのパラメータはデフォルト値を持つことになりますし、あなたがそれらの値のために自分自身をテストする必要がありますが:

public Script(string scriptName, [Optional] ICollection<Tuple<string, bool>> internalFunctions, [Optional] long randomIdentifier) 
{ 
    if (internalFunctions != null) 
    { 
     // do something that needs internalFunctions to have a value 
    } 

    if (randomIdentifier != 0) 
    { 
     // do something that needs randomIdentifier to have a valid value 
    } 
    else 
    { 
     // either a value wasn't passed, or the value 0 was passed... 
     // you can't be sure, so you might want to make this nullable 
    } 
} 
+0

ああ、そう、それがデフォルト(ロング)を使用していますか?だから、Nullableでそれを実現する最善の方法は何ですか? – Dmitriy

+0

あなたは 'long?代わりにrandomIdentifier'を実行し、 'null'をテストします。 –

+0

ああ、ありがとう、良いアイデア! – Dmitriy

関連する問題