私は、次の2つのメソッドのオーバーロードがありFluentValidation framework Cで#を使用していて、右のオーバーロードを選択ませんもう1つでは、TObjectからTPropertyを返すラムダを実行できます。C#が既定値
私はそれが動作する次のようにします。
RuleFor(r => r.First).Equals(r => r.Second);
それは、この場合には右のオーバーロードを取得しています。私は他の過負荷がデフォルトそれを試してみて、比較演算子の値を渡すとき:
RuleFor(r => r.First).Equals(r => r.Second, new ObjectComparer()); // will not compile
それは私が最初のオーバーロードを使用しようとしていると考えるので、これはコンパイルされません。
C#で2番目の過負荷を強制的に使用できる方法はありますか?
編集:
ObjectComparerがされたIEqualityComparerです:
public class ObjectComparer : IEqualityComparer<MyClass>
{
// ...
}
おそらく、そのメソッドが期待しているものに2番目のパラメータをキャストしますか? – user1231231412
ComparerはIEqualityComparerですか?あなたのサンプルコードに基づいて、私はそれが確実だと思っていると思います。 –
Comparerのコードを表示します。他の人が指摘したように、 'IEqualityComparer'を実装していない可能性があります。 – gdoron