是否可以禁止或“隐藏”方法来阻止开发团队使用它们?

时间:2011-09-01 20:36:37

标签: c#

我在20多名开发人员的团队中工作,其中包括最近涌入的新成员。我们的编码标准声明永远不应该使用IEnumerable的.First()扩展方法,而是应该始终使用FirstOrDefault()并检查null返回。

我感谢某些成员可能想要讨论有关培训,执行编码标准或单元测试以获取此类违规行为,但原则上是否可能导致尝试使用会产生编译时错误?< / p>

3 个答案:

答案 0 :(得分:9)

在编译时帮助方面你能做的最好的事情是:

  1. 制作名为“First”的OWN扩展方法,除了抛出异常外什么都不做。

  2. 将该方法标记为“OBSOLETE”,以便获得编译时警告。

  3. 我认为这是你能做的最好的事情。

    (一些评论提到了对命名空间的关注......你只需使用与Microsoft [System.Linq]相同的命名空间,以便编译器同时看到它们。)

答案 1 :(得分:4)

您可以为StyleCop编写自己的规则,并在构建期间强制执行。

我个人认为浪费时间。禁止一种特定方法真的如此重要吗?还有数以百万计的其他情况可以抛出NullReferenceException,并且它是编译时无法找到的东西。

答案 2 :(得分:0)

您可以尝试以下方法:

1)重载您要禁用的功能/方法。 2)向重载的函数/方法添加过时的属性。 3)将编译器设置设置为不构建错误或警告。

这样做会使构建失败并且任何违规代码都会立即引人注目,然后可以识别和训练违法者。