0

現在、いくつかのプロジェクトで、等価性と同等の実装の形で定型コードをたくさん書いています。
Resharper は、等式に参加するフィールドを選択するコードを自動生成し、ボイラープレートを吐き出すことができるため、ここで大いに役立ちます。

このコードは非常に予測可能ですが、まだ多くの落とし穴があるため、クラス自体から持ち上げて、参加するフィールドの上に属性を配置する属性に移植できるのではないかと考えていました (おそらく注文番号を使用)平等のために)。

「コーディングする前に考える」ため:

  • なぜこれがまだ存在しないのですか(または、私のGoogleスキルが失敗したのですか)
  • なぜこれが悪い考えなのですか?
4

2 に答える 2

2

AOPを探しているようですね。本質的に、賢い属性。.NET で使用できる AOP フレームワークがいくつかあります。これらを使用すると、属性に任意のロジックを追加して、必要なクラスに配置できます。

于 2013-02-06T10:14:11.363 に答える
2

なぜこれはまだ存在しないのですか

私のMiscUtilプロジェクトでは、IComparer<T>とに関しては次のようになります。IEqualityComparer<T>

IComparer<Foo> comparer = ProjectionComparer<Foo>.Create(f => f.Name)
                                                 .ThenBy(f => f.Age);

と:

IEqualityComparer<Bar> eq = ProjectionEqualityComparer<Bar>.Create(b => b.Name);

または:

IEqualityComparer<Bar> eq = ProjectionEqualityComparer<Bar>
    .Create(b => new { b.Name, b.Age });

私は、それらのインターフェースを使用するよりもIEquatable<T>IComparable<T>その方がより柔軟であるため、ますます多くの場合、これらのインターフェースを使用することを好むことに気付きました。

于 2013-02-06T10:13:31.043 に答える