我在 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/