という拡張メソッドを.NETの数値データ型にIsOdd()という形で追加したいとします。しかし、これの実装は、拡張メソッド用に定義されているパラメータを除いて、Int16,Int32,Int64などのデータ型では事実上同じになります。私は本当にこの冗長性が嫌いですが、それを避ける方法がないのだろうかと思っています。数値データ型の.NET拡張メソッドを使用しないでください。
これを処理するより良い方法はありますか?代わりに、System.Mathの拡張メソッドを実装し、オーバーロードされた定義を作成する必要があります。IsOdd()?要するに、数値データ型の拡張メソッドが、それらの固有の冗長性のために、一般的に避けられるべきなのかどうか不思議です。
まあ、私は彼らがそのように一般的に使用されているという理由だけで、それらの種類に拡張メソッドを置かないと思い、私はすべてのことが多い 'IsOdd'を必要としません。それはそれらを混乱させるだろう。 – Servy
... @ Servyのコメントに追加するには、構造体とオブジェクトのような非常に一般的な型に拡張メソッドを追加することは、一般に悪い習慣とみなされます。代わりに静的なクラスを作成し、 'MyMath.IsOdd(x)'でテストしてください –