Click。除非必要,不要使用任何未被广泛接受的首字母缩写词。 语言特定的名称
对于类型名称,应使用语义上有意义的名称而不要使用语言特定的关键字。例如,名称
GetLength 比 GetInt 更好。
在标识符的语义含义仅限于其类型的极少数情况下,应使用一般公共语言运行库 (CLR) 类 型名称,而不要使用语言特定的名称。例如,将数据转换为 Int16 的方法应命名为 ToInt16
而不是 ToShort,因为 Short 是 Int16 的语言特定的类型名称。 在标识符没有语义含义且 参数的类型不重要的极少数情况下,应使用通用名称(如值或项) ,而不要重复类型名称。
1.3 程序集和DLL的命名
大多数情况下,程序集包含全部或部分可重用库,且它包含在单个动态链接库 (DLL)
中。一个程序集可拆分到多个 DLL 中,但这非常少见,在此准则中也没有说明。
程序集和 DLL 是库的物理组织,而命名空间是逻辑组织,其构成应与程序集的组织无 关。命名空间可以且经常跨越多个程序集。
一定要为程序集 DLL 选择指示大的功能块(如 System.Data)的名称。程序集和 DLL
的名称不必对应于命名空间名称,但是在命名程序集时遵循命名空间名称这种做法是合理 的。考虑按下面的模式命名 DLL:
..dll
其中 包含一个或多个以圆点分隔的子句。 例如, Contoso.WebControls.dll。
第 3 页 共 51 页
.NET设计规范 武汉无线飞翔科技有限公司
1.4 名称空间的命名
为命名空间选择的名称应指示命名空间中的类型所提供的功能。例如, System.Net.Sockets 命名空间包含的类型允许开发人员使用套接字通过网络进行通信。
命名空间名称的一般格式如下:
.(|)[.][.]
例如,Microsoft.WindowsMobile.DirectX。
使用公司名称作为命名空间的前缀以防止不同公司开发的命名空间具有相同的名称和 前缀。在命名空间名称的第二级使用稳定的、与版本无关的产品名称。
不要根据组织层次结构确定命名空间层次结构中的名称, 因为公司的部门名称经过一段 时间后可能会改变。命名空间名称是长期使用的、不会更改的标识符。组织的不断发展和变 化不应使命名空间名称过时。
使用 Pascal 大小写格式,并用句点分隔命名空间各部分(如
Microsoft.Office.PowerPoint) 。如果您的品牌采用了非传统的大小写,应遵循您的品牌所定 义的大小写,即使它与常用的命名空间大小写相背离也如是。
适当的时候可考虑使用复数命名空间名称。例如,使用 System.Collections 而不使用
System.Collection。但是,品牌名称和首字母缩写词属于此规则的例外情况。例如,使用
System.IO,而不要使用 System.IOs。
命名空间和其中的类型不要使用相同的名称。例如,不要在将“Debug”用作命名空间 名称的同时,又在该命名空间中提供一个名为“Debug”的类。有些编译器要求对这种类型 进行完全限定。
命名空间和类型的名称冲突
如果选择的命名空间或类型的名称与现有名称冲突, 则库的用户将不得不对受影响的项 的引用进行限定。在大多数开发情况中,都不应出现这种问题。
本节提供的某些准则适用于下面的命名空间类别:
应用程序模型命名空间
基础结构命名空间
核心命名空间
技术命名空间组
应用程序模型中的命名空间提供特定于应用程序中的某个类的功能集。例如, System.Windows.Forms 命名空间中的类型提供编写 Windows 窗体客户端应用程序所需的 功能。System.Web 命名空间中的类型支持编写基于 Web 的服务器应用程序。通常,在同 一应用程序中不会使用不同应用程序模型中的命名空间, 因此, 这降低了名称冲突影响使用 您的库的开发人员的可能性。
基础结构应用程序提供专门的支持,很少在程序代码中进行引用。例如,程序开发工具 所使用的 *.Designer 命名空间中的类型。*.Permissions 命名空间是基础结构命名空间的另 一个