C# FXCop冲突CA1716标识符不应匹配关键字

C# FXCop冲突CA1716标识符不应匹配关键字,c#,identifier,fxcop,C#,Identifier,Fxcop,我们最近开始在我们的代码库中使用FxCop,我正在评估这些问题。一个是标识不应该匹配关键字的问题。这适用于名称空间company.blah.Event,它希望我将其更改为其他内容,因为Event是一个关键字。说: 何时取消显示警告 不要抑制来自此规则的警告。该库可能无法在.NET Framework中的所有可用语言中使用 在什么情况下可能不可用?我需要换这个吗?我想它不会很流行。不同的语言有不同的关键字。例如,我可以使用If作为C#中的变量,但是如果有人用VB加载项目,他们就完蛋了,任何类似的情

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

何时取消显示警告 不要抑制来自此规则的警告。该库可能无法在.NET Framework中的所有可用语言中使用


在什么情况下可能不可用?我需要换这个吗?我想它不会很流行。

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


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

嗯,这是一个有点古怪的信息。它宣称要知道这些关键词将以一种尚未成文的语言出现。大家都知道,像BrainFart这样的未来语言可能会使用Acme作为关键词,而你被搞砸了,因为这恰好是你的公司名称

不过,Acme和Event关键字之间存在显著差异。BrainFart语言的作者将指出,通过FxCop运行代码时,您应该知道事件是一个问题。她会赢的


您最好更改它。

如果您看我的示例,它也适用于当前的语言。用C#编写一个库……制作一个VB.Net项目,引用该C#程序集……如果它是一个关键字,则使用该标识符会立即出现问题。@Nick:我不会重复,VB.Net编译器仍然将“if”视为上下文关键字。这可以很好地编译:
Dim obj2作为新的CSharp.If.Class1
。但这并不是我文章的重点。