是否可以禁用或'hide'方法来阻止开发团队使用它们

本文关键字:开发团 开发 团队 hide 方法 是否 | 更新日期: 2023-09-27 18:07:12

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

我理解一些成员可能想要讨论关于培训、强制编码标准或单元测试来挑选此类违规行为,但是原则上,是否有可能导致尝试使用抛出编译时错误?

是否可以禁用或'hide'方法来阻止开发团队使用它们

就编译时帮助而言,您能做的最好的事情是:

  1. 把你自己的扩展方法命名为"First",除了抛出异常之外什么都不做。

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

我认为这是你能做的最好的了。

(一些注释提到了对命名空间的关注…您只需使用与Microsoft相同的名称空间[System]。

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

我个人认为这是浪费时间。禁止一种特殊的方法真的那么重要吗?还有成千上万的其他情况可以抛出NullReferenceException,并且它是在编译时根本找不到的。

您可以尝试以下操作:

1)重载你想禁止的函数/方法。2)给重载的函数/方法添加一个过时的属性。3)将编译器设置为不基于错误或警告构建。

这样做会导致构建失败,任何违规代码都会立即被注意到,然后可以识别和培训违规代码。