禁用 AND 和 OR 关键字

Posted

技术标签:

【中文标题】禁用 AND 和 OR 关键字【英文标题】:Disable AND and OR keywords 【发布时间】:2010-05-10 08:22:57 【问题描述】:

在 VB.net 中,ANDALSOORELSE 关键字基本上总是优先于 ANDOR 关键字。 的最简单方法是什么? 我在想 FXCop(也许有人已经写过这条规则了)。 也许只是 VS 中的一些设置(我们目前使用的是 2008 年,并且正在移动到 2010 年夏末)

我愿意接受所有建议。

【问题讨论】:

如果你想要按位运算怎么办? :) 不要告诉我没有人在 VB 中这样做,那不是真的 很少。对于这少数情况,可以覆盖规则。 不完全是。请记住,VB 应该是一种通用编程语言。由多个人使用,每个人都有不同的要求。 【参考方案1】:

呵呵,我认为您正在寻找的解决方案称为 C#。

但说真的,使用 VB,您可以使用 FXCop 或类似的代码分析工具进行某种全面的策略执行。

但是,当涉及到语言的核心逻辑运算符这样的基本功能时,即使通过策略执行,您也可能不应该混淆它们。这是一个培训问题,最好通过培训来解决。

最好通过单元测试或同行评审来检测这些运算符的意外误用或无意使用。基本操作符行为是任何 VB 初学者指南中的第 1 章内容,如果程序员还没有掌握该语言的基本语法和操作符,他们就不应该编写真正的生产代码。

【讨论】:

我是一个 C# 人,但我的公司是 Vb.net 虽然我明白你的观点,我不应该首先使用关键字,但我对自己不够信任认为我永远不会不小心这样做。因此问题;) 我知道这种感觉……在我使用 VB 工作的极少数情况下,我必须记得仔细检查我的逻辑运算符是否存在潜在的短路缺陷。 我仍然坚持不禁用运营商的建议,即使政策。虽然这让我们 C# 的家伙口齿不清,但许多 VB 代码实际上利用了标准 AND/OR 运算符的非短路行为。让我发疯,但对于本地 VB 人来说,这只是做事的自然方式。 它不会让我口吐白沫。 ByVal 并不总是通过 val 发送值这一事实确实如此。这整件事更像是对自己的不信任……【参考方案2】:

AndOr 关键字除了布尔运算之外还有其他用途。执行按位运算是由这些关键字完成的,因此除非您可以绝对确定永远不需要执行按位运算,否则您不想禁用这些关键字。

【讨论】:

没错,但用途确实有限。对于这些罕见的情况,完全可以推翻该方法的 FxCop 规则。

以上是关于禁用 AND 和 OR 关键字的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 VueJS 和 BootstrapVue 禁用页面中的所有输入?

2017.2.20

xcode禁用ARC(Automatic Reference Counting)

禁用 Android 中所有应用的分屏模式

小程序关键字搜索功能(按钮搜索和回车搜索)

[C++11 类的改进] --- 继承控制:final和override