[CompanyName] 以小写“i”开头时的命名空间命名约定
Posted
技术标签:
【中文标题】[CompanyName] 以小写“i”开头时的命名空间命名约定【英文标题】:Namespace naming convention when [CompanyName] starts with a lower case "i" 【发布时间】:2012-07-18 13:47:05 【问题描述】:我的公司名称以小写“i”开头。例如:iWare(这不是真实的公司名称,但它表明了目的)。
因此,我发现由于命名空间命名规则/约定,我经常不得不与 StyleCop 和 Resharper 作斗争。
有没有人知道我应该如何命名我的命名空间(有时是类)。
EG。
namespace iWare.Product.X
...
您可以想象,上面显示的大多数工具都不喜欢这样。关于替代方案应该是什么,有什么建议吗?我尝试使用以下方法抑制错误:
[SuppressMessage("StyleCop.CSharp.NamingRules", "SA1300:ElementMustBeginWithUpperCaseLetter", Justification = "Reviewed. Suppression is OK here.")]
namespace iWare.Product.X
...
但是,这会导致以下错误:命名空间声明不能有修饰符或属性
有什么想法吗?
【问题讨论】:
就我个人而言,我只称它为 Iware。公司名称和代码之间的大小写不同是否重要?您的代码和真正的 Iware 之间是否存在代码冲突的可能性? 伍迪,谢谢。当我告诉你公司名称实际上是首字母缩略词时,问题进一步恶化。所以它实际上是 iWARE。这意味着使用您的方法的命名空间将是:IWARE。我认为它看起来有点太像一个界面,而且块状大写看起来也很糟糕。国际海事组织。 我还是会选择 Iware,代码上的命名约定就是这样,一个约定。在错误列表中查找的内容少了一件! 让我们看看 MS 命名空间,它们只有 Microsoft.CSharp 库,我认为跟随 .net 创始人没什么不好。答案是 IWare 这个问题更适合programmers.stackexchange.com 【参考方案1】:Brett's answer 解决了工具问题,但回答了标题中的问题(当公司名称以小写字母开头时应该使用什么命名空间命名约定):
This MSDN article,链接到来自this other answer,状态,
如果您的品牌使用非传统的大小写,您应该遵循您的品牌定义的大小写,即使它不同于正常的命名空间大小写。
因此,根据 Microsoft 的说法,您示例中的正确命名空间名称实际上是 iWare.Product.X
,带有小写的“i”。
【讨论】:
【参考方案2】:您似乎正在使用 iWare 或您的公司名称作为您的根命名空间。
在我的项目中,我通常在/使用 MyProject 的属性窗口中指定我的根命名空间,或者在右侧的 MenuItem 'Project' > 'Properties' > 'Application' - 'root namespace' 文本框中指定我的根命名空间。
因此,我根本没有在我的编码中指定它,除非我从另一个组件/项目中引用它作为导入。
【讨论】:
这是有道理的。就我而言,iWARE 也是产品名称。我不完全清楚这会如何或是否会改变事情,但我可以看到您的解决方案是一个好的解决方案。以上是关于[CompanyName] 以小写“i”开头时的命名空间命名约定的主要内容,如果未能解决你的问题,请参考以下文章
编写不区分大小写的Cypher查询以匹配Neo4j中字符串的开头
gcc编译程序时的命令行参数-I(大写i) -L -l (小写L) 2020-10-10