c# - 完全限定的类名有什么意义?

标签 c# naming-conventions

我在 C# 中有一个第三方 SDK,它的类名如下:

com.companyname.productclass.enterprise.productname.sdkname.namespace
com.companyname.productclass.enterprise.productname.sdkname.namespace.objects
com.companyname.productclass.enterprise.productname.sdkname.namespace.objects.fields
com.companyname.productclass.enterprise.productname.sdkname.namespace.objects.fields.data
com.companyname.productclass.enterprise.productname.sdkname.namespace.security

...等等。

有什么我想念的吗?或者只是编码风格的问题?


SDK 在几个方面比看起来需要的更冗长,导致数千行 .cs 文件,所以我愿意接受编写它的人与我的编码风格不同m 曾经(或正在按字节支付 :D )

最佳答案

重点是避免命名冲突。例如,如果我创建了一个带有“对象”命名空间的类库,如

com.davidstratton.productclass.enerprise.productname.sdkname.objects

它可以与其他类并存。

这似乎有点矫枉过正,但请记住在 .Net 出现之前困扰开发的“dll hell ”时代。公司可以(并且确实)使用相同名称的产品类别,因此安装一个应用程序可能会破坏另一个应用程序。 .Net 的设计目标之一就是避免这种情况。

您所询问的命名约定实际上在类设计指南中指定,如下所示:http://msdn.microsoft.com/en-us/library/ms229048.aspx .

编辑 - 添加

我上面的说法是不正确的,说这是在“官方指南”中。我不确定我在哪里看到“com.companyname.blah.foo.bar”命名建议,但它不在我能找到的当前定义或旧定义中。我一定是想象过在某个地方读到它。

所以我正式同意大家所说的 矫枉过正。

关于c# - 完全限定的类名有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1645281/

相关文章:

.net-3.5 - 扩展方法命名空间和赞助商类的命名约定

c# - 在现有项目上实现命名约定的最简单方法是什么?

python django 名称约定

c# - disqus API 缺少必需的参数 : grant_type

c# - 如何使用 SharpZipLib 在 C# 中创建超过 7 GB 的 zip 文件?

c# - 反序列化特定的 XML 字符串

c# - WPF 和字符串格式化

java - 国际用户的 Java 包命名是否有异常(exception)?

java - Java 包名中的下划线——不好吗?

c# - 返回抽象返回类型的子类?