Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C首字母缩略词的命名约定_C#_Naming Conventions - Fatal编程技术网

C# C首字母缩略词的命名约定

C# C首字母缩略词的命名约定,c#,naming-conventions,C#,Naming Conventions,关于首字母缩略词的C命名,如果我正在编写一个与Windows API相关的库,是否有针对Windows API或Windows API的强烈约定,或者这只是个人偏好?其个人偏好。但是.NET将使用WindowsApi。它类似于TcpClient的命名。我听说您应该避免缩写,因此它将成为WindowsApplicationProgrammingInterface 更严重的是,人们似乎误读了上述内容,尽管下面引用了这句话,他们说: 三个或三个以上字母的首字母缩略词应为Pascal大小写,而不是所有大

关于首字母缩略词的C命名,如果我正在编写一个与Windows API相关的库,是否有针对Windows API或Windows API的强烈约定,或者这只是个人偏好?

其个人偏好。但是.NET将使用WindowsApi。它类似于TcpClient的命名。

我听说您应该避免缩写,因此它将成为WindowsApplicationProgrammingInterface

更严重的是,人们似乎误读了上述内容,尽管下面引用了这句话,他们说:

三个或三个以上字母的首字母缩略词应为Pascal大小写,而不是所有大写字母


由于API被认为是一个众所周知的首字母缩略词,如果您想遵循指南,可以选择WindowsApi这个名称。

这只是个人或组织的偏好。只要你始终如一,你就会没事的


NET Framework本身将使用WindowsApi。

有一个约定,它为所有长度超过2个字符的首字母缩略词指定大写字母,其余为小写字母。因此,HttpContext和ClientID。

请查看以下Microsoft官方文档:

要区分标识符中的单词,请将标识符中每个单词的第一个字母大写。不要用下划线来区分单词,或者在标识符中的任何地方。根据标识符的使用情况,有两种适当的方法将标识符大写:

帕斯卡辛 骆驼套 PascalCasing约定用于除参数名称以外的所有标识符,将每个单词的第一个字符大写,包括长度超过两个字母的首字母缩写,如以下示例所示:

属性描述器 HtmlTag 两个字母的首字母缩略词有一个特殊情况,两个字母都大写,如下标识符所示:

流 camelCasing约定仅用于参数名称,将每个单词的第一个字符大写,第一个单词除外,如下例所示。如示例所示,以驼峰式大小写标识符开头的两个字母缩写词都是小写的

propertyDescriptor 流 htmlTag ✓ 对由多个单词组成的所有公共成员、类型和命名空间名称使用PascalCasing

✓ 参数名称一定要使用camelcasting

Krzysztof Cwalina和Brad Abrams第二版,第40-42页

3.1.2首字母缩略词大写

两个字符首字母缩略词上的两个字符都要大写,驼峰大小写标识符的第一个单词除外

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)
不要仅将首字母缩略词的第一个字符大写为三个或三个以上字符,驼峰大小写标识符的第一个单词除外

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)

不要将任何首字母缩略词的任何字符大写,无论其长度如何,都不要将其置于驼峰式大小写标识符的开头。

也请查看FxCop。这是一个很好的实用程序,可以帮助解决这样的问题

老问题,新答案

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)
根据:

两个字符首字母缩略词的两个字符都要大写,除了 骆驼式大小写标识符的第一个字

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)
名为DBRate的属性是用作 Pascal大小写标识符的第一个字。名为 ioChannel是短首字母缩略词IO用作第一个单词的一个示例 一个驼峰式的标识符

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)
首字母缩略词的第一个字符必须大写三个或三个以上 字符,驼峰大小写标识符的第一个字除外

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)
名为XmlWriter的类是用作 Pascal大小写标识符的第一个字。名为htmlReader的参数 是一个长首字母缩略词用作单词首字母的示例 骆驼壳标识符

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)
不要将任何首字母缩略词的任何字符大写 它们的长度,在驼峰式大小写标识符的开头

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)
名为xmlStream的参数是使用的长首字母缩略词xml的一个示例 作为骆驼式大小写标识符的第一个字。名为 dbServerName是用作第一个缩写的缩写词db的一个示例 驼峰式大小写标识符的单词

System.IO
public void StartIO(Stream ioStream)
System.Xml
public void ProcessHtmlTag(string htmlTag)

如果缩写在领域内广为人知,则可以。API在编程中是众所周知的。《框架指南》一书建议您要么避免使用缩写词或首字母缩写词,要么使用PascalCase。我建议使用WindowsApi。来自框架的示例:Uri,UriBuilder HtmlDecode。@John:是的,我在这个问题上有点开玩笑@放松-这是否意味着我们可以使用html而不是HyperTextMarkupLanguage?-1:框架设计指南:一般来说,避免在标识符名称中使用首字母缩略词很重要,除非它们是常用的,并且任何可能使用框架的人都可以立即理解。例如,HTML、XML和IO都很容易理解,但不太为人所知的首字母缩略词肯定是可以避免的。API-是常用的、可立即理解的首字母缩略词
Document是针对.NET1.1的。我不明白这有什么区别?这并不是说他们在每一个版本或任何东西之间改变了惯例。这本设计指南书有第二版。我还没有进行比较,以确定在命名方面没有任何变化。.NET 4.5有关资本化的指导原则:微软的做法随着时间的推移而改变。-尽管很微妙正如其他人指出的,与.NET 4.5.Id中的DbContext相比,.NET 1.1中的DBNull更适合大写。另外两个常用的术语本身就属于一个类别,因为它们是常见的俚语缩写。“Ok”和“Id”这两个词应按所示大小写,但这两个词不应在名称中使用缩写。框架设计指南第二版,第44页。有人指出,若ID代表识别数据而非标识符,那个么ID也可以。抱歉,请再说一遍。@Sergey Teplyakov Microsoft指南说,仅对超过2个字符的缩写使用Pascal。在ID和OK的情况下,所有的caps都可以,但是HTML变成了HTML@斯姆德拉格:公平地说,这只被明确建议用于首字母缩写词,而不是缩写词。值得注意的是,微软本身并没有严格遵守这一惯例。例如,他们在某些地方使用DbContext,而在另一些地方使用DBNull。如果我看到这个奇怪的大写2字母首字母缩写规则,我总是感到头痛。看起来微软意识到System.IO的名称是错误的,并决定对此制定一条规则。但是如何命名Microsoft Visual Studio的标识符呢?MSVSID?我说MsVsId会更好/更一致。不幸的是,它们没有遵循自己的命名约定。看看本文中Dto的用法:有人知道为什么会出现2个字母的规则吗?它背后的原因是什么?@rory.ap-我认为它植根于20多年前《芝加哥风格手册》中的建议。我记得在一个科技作家之前的硬拷贝中看到过它,但不知道它是否还在里面。也可能是为了避免与“Id”这个词的意思冲突,这个词在今天看来似乎很模糊,但实际上在当时只是流行文化的一小部分。刚才有一个例子,应用的商业首字母缩略词被用作应用,现在看起来像是应用的缩写,而不是它的实际含义。