注释
此内容由 Pearson Education, Inc. 的许可从 框架设计指南:可重用 .NET 库的约定、习惯和模式(第 2 版)重新打印。 该版于2008年出版,此后该书已于 第三版全面修订。 此页上的一些信息可能已过期。
本章中的准则为使用案例提供了一种简单的方法,在应用一致时,使类型、成员和参数的标识符易于阅读。
标识符的大写规则
若要区分标识符中的单词,请大写标识符中每个单词的第一个字母。 请勿使用下划线来区分字词,也不要在标识符的任意位置使用下划线。 有两种适当的方法来大写标识符,具体取决于标识符的使用:
PascalCasing
camelCasing
PascalCasing 约定用于参数名称之外的所有标识符,将每个单词(包括超过两个字母的首字母缩写)的第一个字符大写,如下示例所示:
PropertyDescriptor
HtmlTag
两个字母的首字母缩写词是一种特殊情况,其中两个字母都大写,如以下标识符所示:
IOStream
camelCasing 约定(仅用于参数名称,将每个单词的第一个字符(除第一个单词之外)大写,如以下示例所示。 如示例中所示,以骆驼形式标识符开头的双字母首字母缩略词都是小写。
propertyDescriptor
ioStream
htmlTag
✔️ 对于包含多个单词的所有公共成员、类型和命名空间名称,请使用 PascalCasing。
✔️ 使用 camelCasing 作为参数名称。
下表描述了不同类型的标识符的大小写规则。
标识符 | 大小写 | 示例: |
---|---|---|
Namespace | 帕斯卡 | namespace System.Security { ... } |
类型 | 帕斯卡 | public class StreamReader { ... } |
接口 | 帕斯卡 | public interface IEnumerable { ... } |
方法 | 帕斯卡 | public class Object { public virtual string ToString(); } |
资产 | 帕斯卡 | public class String { public int Length { get; } } |
事件 / 活动 | 帕斯卡 | public class Process { public event EventHandler Exited; } |
领域 | 帕斯卡 | public class MessageQueue { public static readonly TimeSpan InfiniteTimeout; } public struct UInt32 { public const Min = 0; } |
枚举值 | 帕斯卡 | public enum FileMode { Append, ... } |
参数 | 骆驼 | public class Convert { public static int ToInt32(string value); } |
将组合词和常见术语的首字母大写
出于大写目的,大多数复合词被视为单一字词。
❌ 请勿在所谓的封闭式复合词中大写每个单词。
这些是作为单个单词(如终结点)编写的复合词。 为了符号大小写准则,请将“闭合形式”组合词视为单个单词。 使用当前字典来确定复合词是否以封闭形式编写。
帕斯卡 | 骆驼 | 不 |
---|---|---|
BitFlag |
bitFlag |
Bitflag |
Callback |
callback |
CallBack |
Canceled |
canceled |
Cancelled |
DoNot |
doNot |
Don't |
Email |
email |
EMail |
Endpoint |
endpoint |
EndPoint |
FileName |
fileName |
Filename |
Gridline |
gridline |
GridLine |
Hashtable |
hashtable |
HashTable |
Id |
id |
ID |
Indexes |
indexes |
Indices |
LogOff |
logOff |
LogOut |
LogOn |
logOn |
LogIn |
Metadata |
metadata |
MetaData, metaData |
Multipanel |
multipanel |
MultiPanel |
Multiview |
multiview |
MultiView |
Namespace |
namespace |
NameSpace |
Ok |
ok |
OK |
Pi |
pi |
PI |
Placeholder |
placeholder |
PlaceHolder |
SignIn |
signIn |
SignOn |
SignOut |
signOut |
SignOff |
UserName |
userName |
Username |
WhiteSpace |
whiteSpace |
Whitespace |
Writable |
writable |
Writeable |
区分大小写
在 CLR 上运行的语言不需要支持区分大小写,尽管有些语言确实支持。 即使您的语言支持它,但可能访问您的框架的其他语言不支持。 因此,外部可访问的任何 API 都不能单独依赖于大小写来区分同一上下文中的两个名称。
❌ 请勿假定所有编程语言都区分大小写。 他们不是。 名称不能按大小写单独区分。
部分内容 © 2005, 2009 Microsoft 公司。 保留所有权利。
获得皮尔逊教育公司许可后重印自 框架设计准则:可重用 .NET 库的约定、习惯和模式 ,由 Krzysztof Cwalina 和 Brad Abrams 编写,并作为微软 Windows 开发系列中的出版物之一,于 2008 年 10 月 22 日由 Addison-Wesley Professional 出版。