List <>所需的编译时错误.Sort()没有排序规范

Ren*_*Pet 5 .net c#

有没有某种方法来定义一个类,如果我错误地尝试对没有排序规范的对象的List <>进行排序,它会产生编译时错误?

因此,当我正确指定时,例如

listOfMyObjects.Sort(MyObject.CompareFieldNames);
Run Code Online (Sandbox Code Playgroud)

它会被接受,但如果我忘记并指明

listOfMyObjects.Sort();
Run Code Online (Sandbox Code Playgroud)

然后我会得到一个编译时错误.

(我确实意识到我会遇到运行时错误 - 但我更喜欢的是获取编译时错误的一些方法.)

编辑:

为了说清楚,我为上面的第二个例子得到一个编译时错误.

我偶尔发现的情况是,我有一个类有几种不同的Comparison <>方法.假设它可以按FieldName排序,也可以按DateOfCreation排序.现在,我想要避免的是意外/错误地思考,"哦,是的,好旧的对象X,它可以按创建日期排序,所以我只需要用Sort()对这个列表进行排序,并在我的路上愉快地去... ",但实际上默认排序方法是按字段名排序(因此排序错误)或没有默认排序方法(所以我得到运行时错误).

所以我想强迫自己(或其他任何使用我的对象的人)记住有几种方法可以对对象进行排序,其中一种方法应该明确选择.

Pat*_*ald 4

您可以编写自定义 FxCop 规则,请参阅此处的教程。

看看这个代码分析教程。