我在c#代码中使用了一些本机函数。所以我有一些枚举,方法和类。我已经启用了Microsoft All规则进行代码分析。因此,当我建立时,我收到了有关姓名的警告。
例如;
[Guid("0000000d-0000-0000-C000-000000000046")]
[InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
public interface IEnumSTATSTG
Warning: "CA1709:IdentifiersShouldBeCasedCorrectly" for IEnumSTATSTG
我所做的是我已经压制了警告。但这是一个好习惯吗?我该怎么办?我可以将此界面 IEnumSTATSTG 重命名为其他不会发出警告的内容。
同样如果我有一个方法,其中包含用C / C ++风格编写的参数,那么它也给了我一个代码分析警告。
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Dest"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "grf"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1726:UsePreferredTerms", MessageId = "Flags"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "pwcs"), System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "pstg")]
uint MoveElementTo(
/* [string][in] */ string pwcsName,
/* [unique][in] */ IStorage pstgDest,
/* [string][in] */ string pwcsNewName,
/* [in] */ uint grfFlags);
这里我已经抑制了所有参数名称的警告。是否可以将 pwcsName 等参数重命名为Name或其他名称?
答案 0 :(得分:2)
名称对于p / invoke或COM调用并不重要 - 通常,一切皆有可能: - )。
最重要的是:
话虽这么说,我个人总是尽可能保持与原始名称最接近的名称(有时因为某些技术原因需要重命名)并像你一样添加SuppressMessage。如果您查看.NET Framework本身(使用.NET Reflector或ILSpy等工具),您将会遵循相同的规则。