回答編集履歴
2
文章追加
answer
CHANGED
|
@@ -61,4 +61,6 @@
|
|
|
61
61
|
var sortedByFalse = models.OrderByDescendingEx(false).ToList();
|
|
62
62
|
```
|
|
63
63
|
|
|
64
|
-
他のクラスにも拡張するならこんな感じでインターフェースを実装するだけで、全く同じ振る舞いができるので、仕様が変わったときの適用もインターフェースや拡張メソッドを更新するだけですむので、ちょっとハッピーになれるかと♪
|
|
64
|
+
他のクラスにも拡張するならこんな感じでインターフェースを実装するだけで、全く同じ振る舞いができるので、仕様が変わったときの適用もインターフェースや拡張メソッドを更新するだけですむので、ちょっとハッピーになれるかと♪
|
|
65
|
+
|
|
66
|
+
ここまでやる必要がなければ、拡張メソッド`OrderByDescendingEx`の処理1行のみでよいかと思います。
|
1
誤字修正しました。
answer
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
どこに誰の責務があるのかや、汎用性必要?とか次第ですが、
|
|
2
|
-
特定多数のクラスに同一の振る舞いを適用したいのであれば、以下のように実装することで、コントラクトによってどのクラスに適用することも可能になります。
|
|
2
|
+
特定多数のクラスに同一の振る舞いを適用したいのであれば、以下のように実装することで、コントラクトによってどのクラスにも適用することも可能になります。
|
|
3
3
|
|
|
4
|
-
今回のソート
|
|
4
|
+
今回のソートする要件をコントラクトとすると仮定し、以下のインターフェースを作ります。
|
|
5
5
|
(インターフェース名は、テキトーにつけてますので、実装するなら読んで意味のわかるものにしてください)
|
|
6
6
|
```C#
|
|
7
7
|
public interface IHogeExtentionSortable
|