- 196 名前:デフォルトの名無しさん mailto:sage [2017/05/25(木) 20:33:29.10 ID:OZ9w4Yf7.net]
- 細かい機能系だと == オーバーロードが割と収集つかない感じなっているので
object.ReferenceEquals object.Equals を毎回書く羽目になり始めている これは無駄なので == オーバーロードは廃棄して object.ReferenceEquals object.Equals の糖衣構文として === !== == != という形にして欲しい。 Java屋がC#登場時に==オーバーロードはヤバイと警告していたが、今のC#は本当にそうなってしまった。 当初は気にしすぎと思っていたが、これは良くなかったな。 <= >= なんかも最低1個書けば残りは自動的に実装してほしいな。 == != はobject.Equalsは必須なので、あとは < <= >= > のいずれか一個を定義すれば残りは全部生成可能。 IComparable<A>を実装したのなら、逆にそこからobject.Equalsを実装してほしい。 object.ReferenceEquals に対応する GetHashCode() は簡単に利用できるべきだ。 LINQを使うときに、Distinct()などで、object.ReferenceEqualsを使いたいケースは多い。 どの比較を使うのか簡単に指定できるようになって欲しい。 比較演算子は、三引数の演算子にして、比較方法、比較対象1、比較対象2という感じにして a ==[比較方法] b のような感じで扱えるようになると見通しが良くなると思う。 今のC#は、ラムダ式と比較用interfaceが入り混じって混沌の世界と化している。
|

|