【问题标题】:FXCop violation CA1716 IdentifiersShouldNotMatchKeywordFXCop 违规 CA1716 IdentifiersShouldNotMatchKeyword
【发布时间】:2010-03-03 11:16:17
【问题描述】:

我们最近开始在我们的代码库中使用 FxCop,我正在评估这些问题。一是 IdentifiersShouldNotMatchKeywords 问题。这适用于命名空间 company.blah.Event,它希望我将其更改为其他内容,因为 event 是一个关键字。 The docs说:

何时取消警告 不要禁止来自该规则的警告。该库可能无法用于 .NET Framework 中的所有可用语言。

什么情况下可能不可用?我需要改变这个吗?我想它不会很受欢迎。

【问题讨论】:

    标签: c# identifier fxcop


    【解决方案1】:

    不同的语言有不同的关键字。例如,我可以在 C# 中使用If 作为变量,但是如果有人在 VB 中加载项目,他们就搞砸了,这样的任何情况都会导致问题。

    为了安全起见,我会更改它。如果其他人正在使用您的库,我会说您需要更改它,您不知道这样做时他们将使用什么语言。

    【讨论】:

      【解决方案2】:

      嗯,这是一个有点古怪的信息。它宣称知道关键字在尚未成文的语言中将是什么。据您所知,像 BrainFart 这样的未来语言可能会使用 Acme 作为关键字,而您被搞砸了,因为那恰好是您的公司名称。

      Acme 和 Event 关键字之间存在显着差异。 BrainFart 语言的作者会指出,您应该知道 Event 是通过 FxCop 运行代码的问题。她会赢得这场争论。

      你最好改一下。

      【讨论】:

      • 如果你看我的例子,它也适用于当前的语言。用 C# 编写一个库……创建一个 VB.Net 项目,引用该 C# 程序集……如果它是关键字,则使用该标识符会立即出现问题。
      • @Nick:我不重复,VB.NET 编译器仍然将“If”视为上下文关键字。这编译得很好:Dim obj2 As New CSharp.If.Class1。但这并不是我这篇文章的真正重点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多