大小写约定

注释

此内容由 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 出版。

另请参阅