0

これは答えるのが難しい質問ではありませんが、このエラーがスローされる理由を一生理解できません。

条件が満たされた場合に失敗を追加しようとしている検証結果があります。

ValidationResult result = new ValidationResult();
//Do not call if nothing is in list.
if (List.Count == 0)
{
    ValidationFailure failure = new ValidationFailure("Nothing","Must pick something"){CustomState = ValidationLevel.Critical};
    return view.policyResult.Errors.Add(failure);
}
    return manager.Validate();

何か出てきたら教えてください!リストが 0 より大きい場合は、return ステートメントを追加しました。マネージャーに送られ、検証され、検証結果が返されます。

4

3 に答える 3

1

Add何も返さない、それはvoidメソッドです。add を呼び出してから return する必要があります...戻りたいものは何でも (おそらく、failure以前に作成したオブジェクト?)。

すなわち

view.policyResult.Errors.Add(failure);
return failure;
于 2013-05-07T18:25:32.097 に答える
0

この線

 view.policyResult.Errors.Add(failure);

この行が呼び出されるメソッドは型のオブジェクトのインスタンスを返す必要がありますが、戻り値 (void) を持たないメソッド Add を呼び出しますFluentValidation.Results.ValidationResult

クラス ValidationFailure が ValidationResult から派生している場合は、返そうとすることができます

  return failure ;

ただし、メソッドが if 条件 (List.Count > 0) に入らず、次に何が起こるかわからない可能性があります。繰り返しますが、推測ですが、 if の前に宣言されたインスタンス
を返したいresultValidationResult

于 2013-05-07T18:25:21.547 に答える
0

AddvoidC#のメソッドです。return必要なカスタムの失敗メッセージを返すには、作成した失敗オブジェクトを呼び出す必要があります。

スティーブが指摘したように、if ステートメントを入力していない可能性がありますが、追加しようとしています

return failure;
于 2013-05-07T18:35:56.537 に答える