2010-03-03 27 views
2

我們最近開始在我們的代碼庫上使用FxCop,並且正在評估問題的過程。一個是IdentifiersShouldNotMatchKeywords問題。這適用於命名空間company.blah.Event,它希望我改變爲其他事物,因爲事件是關鍵字。 The docs說:FXCop違規CA1716標識符不應該匹配關鍵字

何時取消警告 不要從此規則中取消警告。該庫可能無法在.NET Framework中的所有可用語言中使用。

在什麼情況下可能無法使用?我需要改變這個嗎?我想它不會很受歡迎。

回答

6

不同的語言有不同的關鍵詞。例如,我可以使用If在C#中的變量,但如果有人加載了在VB中的項目,他們就完蛋了,就像任何情況下可能會導致問題。

我會改變它,只是爲了安全。我說你需要來改變它,如果任何人在消耗你的圖書館,你可以不知道他們會這麼做時使用何種語言。

1

那麼,這是一個棘手的消息。它宣稱要知道這些關鍵詞將以一種尚未成文的語言出現。對於您所知道的,像BrainFart這樣的未來語言可能會將Acme用作關鍵字,並且因爲這恰好是您的公司名稱而被搞砸了。

雖然Acme和Event關鍵字之間有明顯的區別。 BrainFart語言的作者將指出,您應該已經知道事件是通過FxCop運行代碼的問題。她會贏得這個論點。

你最好改變它。

+0

如果你看一下我的例子,它適用於當前的語言。在C#中編寫一個庫...製作一個VB.Net項目,引用C#程序集....如果它是關鍵字,則使用該標識符的直接問題。 – 2010-03-03 12:49:05

+0

@Nick:我不重複,VB.NET編譯器仍將「If」作爲上下文關鍵字。這編譯得很好:'Dim obj2 As New CSharp.If.Class1'。但那不是我的帖子的重點。 – 2010-03-03 13:08:59

相關問題