ソート指定のないオブジェクトのList<>を誤ってソートしようとすると、コンパイル時エラーが発生するようにクラスを定義する方法はありますか?
だから私が正しく指定すると、例えば
listOfMyObjects.Sort(MyObject.CompareFieldNames);
それは受け入れられますが、私が忘れて指定した場合
listOfMyObjects.Sort();
次に、コンパイル時エラーが発生します。
(私はランタイムエラーが発生することを認識していますが、私が好むのはコンパイル時エラーを取得する何らかの方法です。)
編集:
明確にするために、上記の2番目の例ではコンパイル時エラーが発生します。
私が時々遭遇する状況は、私がいくつかの異なるComparison<>メソッドを持つクラスを持っているということです。FieldNameで並べ替えることも、DateOfCreationで並べ替えることもできるとしましょう。さて、私が避けたいのは、誤って/誤って考えていることです。「ああ、古き良きオブジェクトX、作成日で並べ替えることができるので、このリストをSort()で並べ替えて、楽しく進んでいきます... "ですが、実際には、デフォルトの並べ替え方法はFieldNameによる並べ替えであるか(並べ替えが間違っています)、またはデフォルトの並べ替え方法がありません(したがって、実行時エラーが発生します)。
したがって、私は自分自身(または私のオブジェクトを操作している他の人)に、オブジェクトを並べ替える方法がいくつかあり、メソッドの1つを明示的に選択する必要があることを覚えてもらいたいと思います。