是否有某种方法可以定义一个类,如果我错误地尝试对没有排序规范的对象的 List<> 进行排序,它会产生编译时错误?
所以当我正确指定时,例如
listOfMyObjects.Sort(MyObject.CompareFieldNames);
它将被接受,但如果我忘记并指定
listOfMyObjects.Sort();
然后我会得到一个编译时错误。
(我确实意识到我会得到一个运行时错误 - 但我更喜欢的是某种方式得到一个编译时错误。)
编辑:
为了清楚起见,我想为上面的第二个示例获取编译时错误。
我偶尔会遇到的情况是,我有一个包含几种不同比较<> 方法的类。假设它可以按 FieldName 排序,也可以按 DateOfCreation 排序。现在,我要避免意外/错误地思考,“哦,是的,好的旧对象 X,它可以按创建日期排序,所以我将使用 Sort() 对这个列表进行排序,然后愉快地前进...... ",但实际上默认排序方式是按FieldName排序(所以排序错误)或者没有默认排序方式(所以出现运行时错误)。
所以我想强迫自己(或任何使用我的对象的人)记住有几种方法可以对对象进行排序,并且应该明确选择其中一种方法。