【问题标题】:How to name namespaces with composed names? [closed]如何使用组合名称命名命名空间? [关闭]
【发布时间】:2014-05-21 09:09:10
【问题描述】:

假设我拥有一个名为 www.john-doe.com 的域。如何在 C# 中编写适当的命名空间?

Com.John_Doe.<product-name>吗?

我所读到的关于 C# 命名空间约定的所有内容都是它应该使用 PascalCase。但是减号呢?写下划线合适吗?

【问题讨论】:

  • 通过这种方式格式化,看起来好像您正在创建一个android应用程序空间。命名空间应该与代码的组织相关,并且可以是任何有意义的。
  • 选择一个你喜欢的约定并坚持下去
  • C# 中的命名空间与域或类似的东西无关。这看起来像一个(非常尴尬的)java 约定,这没有任何意义。如果您的产品名为My-Product,那么您应该为数据层调用MyProduct.Data,为模型调用MyProduct.Model,为UI 调用MyProduct.UI,等等。 forget java.
  • 你可能会浏览一个流行的开源 C# 项目,看看他们是如何设置命名空间的:json.codeplex.com
  • Namespace conventionscapitalization conventions 告诉你不要使用下划线(连字符也是如此),仅供参考。

标签: c# namespaces


【解决方案1】:

根据 .NET namespace conventions,您应该在命名空间中使用 pascal 大小写(除非这与您的公司/品牌/产品使用的非标准大小写不符)。根据capitalization conventions,帕斯卡大小写不应包含下划线。 General naming conventions 还告诉你不要使用连字符(这实际上会在 C# 中产生编译器错误)。

除非 Com 打算替换为您的公司名称(从上下文来看,“John Doe”听起来像公司)您应该使用:

JohnDoe.<ProductName>

【讨论】:

  • 感谢您的解释!但是JohnDoe.&lt;ProductName&gt;www.johndoe.com 使用相同的命名空间有冲突吗? :-(
  • 我想如果您同时拥有这两个网站并同时拥有这两个网站的项目,那么您将遇到不幸的命名空间冲突。也许这可以证明使用下划线是合理的。
【解决方案2】:

我认为这是个人喜好。例如。我的首选是JohnDoe。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-12-25
    • 2019-06-20
    • 2011-07-30
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    相关资源
    最近更新 更多