どのようにプログラムによるparam名を建設する際にはArgumentException?
-
01-07-2019 - |
質問
を建設する際にはArgumentException、カップルに過度の負荷を取る文字列に無効な引数のパラメータの名前です。私は図のようになって更新するようにしてくださいこctor paramきを変更したいの方法のparamます。ある単純ないことを反映?
更新: の2つの回答です。きの両方の質問に対する答えや、その解決にないといけないと保守ます。(大丈夫、 小さな 頭痛もので...)を説明しました 並べ替え paramsを降は削除前のparam--思うひとつ忘れてはいけないの変更を例外を構築コードです。があるので、使用できるもの
Object.ReferenceEquals(myParam, <insert code here>)
必ず取り扱って関連するパラメーター?そのように、コンパイラがステップを防ぐため、私はひどく構築します。
と思ると疑うに"シンプル"のの質問が解決されない場合はその近刊。どうだ付けを用いた文字列.:)
解決
反射が不適切なためます。
またのを覚えていきたいです。
幸いなことにFxCop(またはチームシステムコードの解析)まで指摘して他のミスマッチ
他のヒント
を使用できる表現ツリーにこには、だいたいの高価なのであの奇syntax.E.g.
public void Resize(int newSize)
{
if (newSize < 1)
{
throw new ArgumentException("Blah", NameOfVariable(() => newSize));
}
// ... whatever ...
}
がNameOfVariableのように定義されている。
public static string NameOfVariable(Expression<Func<object>> expressionTree)
{
var expression = (UnaryExpression)expressionTree.Body;
var memberExpression = (MemberExpression)expression.Operand;
return memberExpression.Member.Name;
}
このもののぶ実行時に合格以外のものにUnaryExpressionにNameOfVariable.
くださればこのコードの原因ともなるFxCop文句として ジョー 記載利用FxCopのだろう最良の方法を行っています。
所属していません StackOverflow