【问题标题】:Namespace naming convention when [CompanyName] starts with a lower case "i"[CompanyName] 以小写“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

标签: visual-studio namespaces resharper naming stylecop


【解决方案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 也是产品名称。我不完全清楚这会如何或是否会改变事情,但我可以看到您的解决方案是一个好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    • 2016-03-25
    • 1970-01-01
    • 1970-01-01
    • 2016-12-25
    相关资源
    最近更新 更多