2009-03-25 19 views
10

無効な値がプロパティセッターに渡され、ArgumentException(またはそれに由来する可能性のあるクラス)がスローされた場合、paramNameパラメータにはどの値を割り当てる必要がありますか?C#のプロパティ設定ツールでArgumentExceptionの 'paramName'パラメータに割り当てる値は?

valueと思われますので、実際の議論ですか?

代わりにプロパティの名前を渡すのが明確ではないでしょうか?

答えて

9

ArgumentExceptionsには、無効なパラメータの名前が含まれています。プロパティーセッターの場合、実際のパラメーターの名前はvalue(ソースコードと生成コードの両方)です。この名前は一貫して使用されます。反射板と周りの広範な突っつい後

+1

私は推測しますStackTraceが問題のプロパティを明確にするという前提があります。 –

2

はい、プロパティの名前を渡す方がはっきりしています。

8

(書き込み可能なプロパティを持つCLRオブジェクトを見つけようとして)、引数名としての「価値」を使用して、私が最初に見つかった(FileStream.Position):

if (value < 0L) 
{ 
    throw new ArgumentOutOfRangeException("value", 
       Environment.GetResourceString("NeedNonNegNum")); 
} 
関連する問題