【发布时间】:2009-04-16 01:17:48
【问题描述】:
我正在创建一个 C# 库,并将使用它们使用的协议(TCP、UDP 等)作为大多数公共类的前缀,我遇到了一个难题:应该是 TCPXxxx 还是 @987654322 @?
.NET 框架中似乎没有标准(IPAddress 与 TcpClient)。
在使用库时您更喜欢哪个:TCPXxxx 或 TcpXxxx?
【问题讨论】:
标签: c# .net naming-conventions
我正在创建一个 C# 库,并将使用它们使用的协议(TCP、UDP 等)作为大多数公共类的前缀,我遇到了一个难题:应该是 TCPXxxx 还是 @987654322 @?
.NET 框架中似乎没有标准(IPAddress 与 TcpClient)。
在使用库时您更喜欢哪个:TCPXxxx 或 TcpXxxx?
【问题讨论】:
标签: c# .net naming-conventions
根据设计指南,它应该是 TcpXxxx。
在设计指南中,2 个字母的首字母缩写词大写,所有其他字母的首字母大写。
来自 Cwalina 和 Abrams 的框架设计指南:
- 双字符首字母缩写词的两个字符都大写,驼峰式标识符的第一个单词除外。
System.IO public void StartIO(Stream ioStream)
- 除了驼峰式标识符的第一个单词之外,只有三个或更多字符的首字母缩写词的第一个字符大写。
MSDN 有一个简短的版本。
【讨论】:
我总是喜欢想象一个将 WordsLikeThis 转换为 words-like-this 的理论过程,并想象相关名称将如何转换。一些例子:
TCPSocket -> t-c-p-socket
TcpSocket -> tcp-socket
显然后者更有意义。
【讨论】:
一般情况下,如果是 2 个字符的前缀,则保留大写 (IPAddress),如果是 3 个或更多字符,则将前缀 (TcpXxxx) 大写。
此规则有一些例外情况(例如,如果前缀是大写的专有名称)。
【讨论】:
您可以考虑将这些类放在名为“TCP”的命名空间中。如果您这样做,那么您在该命名空间中的函数/类名称将变得更短更清晰,您根本不必担心这个问题。
【讨论】:
我知道这是 C# 编码风格,但我更喜欢 Python PEP 8 Style
注意:在 CapWords 中使用缩写词时,所有字母大写 的缩写。因此 HTTPServerError 比 HttpServer 错误。
但是在罗马...一致的代码更好,这就是语言风格指南是个好主意的原因。
【讨论】:
我知道在 Eclipse 中我可以通过只使用类型名称的大写字母来快速指定一个类型,所以我更喜欢大写而不是大写...我不知道 VS 是否可以这样做但是这是狂热的。
【讨论】: