網站首頁 編程語言 正文
C# 代碼大小寫規范
C# 一般采用帕斯卡命名和駝峰命名,.NET類庫就是使用這種命名方法, 可見是微軟推薦的
-
PasalCasing
:標識符的第一個單詞的字母大寫; -
camelCasing
:標識符的第一個單詞的字母小寫。
下表描述了不同類型標識符的大小寫規則
標識符 |
大小寫 |
示例 |
命名空間 |
Pascal |
namespace Com.Techstar.ProductionCenter |
類型 |
Pascal |
public class DevsList |
接口 |
Pascal |
public interface ITableModel |
方法 |
Pascal |
public void UpdateData() |
屬性 |
Pascal |
Public int Length{…} |
事件 |
Pascal |
public event EventHandler Changed; |
私有字段 |
Camel |
private string fieldName; |
非私有字段 |
Pascal |
public string FieldName; |
枚舉值 |
Pascal |
FileMode{Append} |
參數 |
Camel |
public void UpdateData(string fieldName) |
局部變量 |
Camel |
string fieldName; |
這三個標紅的是采用駝峰(Camel)命名法
其余的是帕斯卡(pascal)命名法
具體應用的一般良好習慣 | |||
1、 |
成員變量前加前綴 _, 這個也是微軟的常用做法 |
||
2、 |
接口的名稱加前綴I |
||
3、 |
自定義的屬性以Attribute結尾,如: public class AuthorAttribute :Attribute { } |
||
4、 |
自定義的異常以Exception結尾,如: public class AppException: Exception {} |
||
5、 |
方法的命名。一般將其命名為動賓短語,如: ShowDialog() CreateFile() |
||
6、 |
代碼的縮進。要用Tab,而不要用space. |
||
7、 |
局部變量的名稱要有意義。不要用x,y,z等等(除用于For循環變量中可使用i,j,k,l,m,n)。 |
||
8、 |
所有的成員變量聲明在類的頂端,用一個換行把它和方法分開。 |
||
9、 |
用有意義的名字命名namespace,如:產品名、公司名。 |
||
10、 |
生成和構建一個長的字符串時,一定要使用StringBuilder,而不用string。 |
||
11、 |
始終使用”{ }”包含if下的語句,即使只有一條語句。 |
||
12、 |
把相似的內容放在一起,比如數據成員、屬性、方法、事件等,并適當的使用#region…#endregion |
C#中的大小寫約定
許多命名約定都與標識符的大小寫有關。值得注意的是,公共語言運行庫 (CLR) 支持區分大小寫和不區分大小寫的語言。本主題中描述的大小寫約定可幫助開發人員理解和使用庫。
大小寫樣式
下列術語描述了標識符的不同大小寫形式。
Pascal 大小寫
將標識符的首字母和后面連接的每個單詞的首字母都大寫。可以對三字符或更多字符的標識符使用 Pascal 大小寫。
例如: BackColor
大小寫混合
標識符的首字母小寫,而每個后面連接的單詞的首字母都大寫。
例如: backColor
大寫
標識符中的所有字母都大寫。
例如: IO
標識符的大小寫規則
如果標識符由多個單詞組成,請不要在各單詞之間使用分隔符,如下劃線(“_”)或連字符(“-”)等。而應使用大小寫來指示每個單詞的開頭。
下列準則是用于標識符的通用規則。
對于由多個單詞組成的所有公共成員、類型及命名空間名稱,要使用 Pascal 大小寫。
注意,這條規則不適用于實例字段。由于成員設計準則中詳細說明的原因,不應使用公共實例字段。
對參數名稱使用大小寫混合。
下表匯總了標識符的大小寫規則,并提供了不同類型標識符的示例。
標識符 |
大小寫方式 |
示例 |
---|---|---|
類 |
Pascal |
AppDomain |
枚舉類型 |
Pascal |
ErrorLevel |
枚舉值 |
Pascal |
FatalError |
事件 |
Pascal |
ValueChanged |
異常類 |
Pascal |
WebException |
只讀的靜態字段 |
Pascal |
RedValue |
接口 |
Pascal |
IDisposable |
方法 |
Pascal |
ToString |
命名空間 |
Pascal |
System.Drawing |
參數 |
Camel |
typeName |
屬性 |
Pascal |
BackColor |
首字母縮寫的大小寫規則
首字母縮寫詞是由術語或短語中各單詞的首字母構成的單詞。例如,HTML 是 Hypertext Markup Language 的首字母縮寫。只有在公眾廣為認知和理解的情況下,才應在標識符中使用首字母縮寫詞。首字母縮寫詞不同于縮寫詞,因為縮寫詞是一個單詞的縮寫。例如,ID 是 identifier 的縮寫。通常情況下,庫名不應使用縮寫詞。
可在標識符中使用的兩個縮寫詞是 ID 和 OK。在采用 Pascal 大小寫格式的標識符中,這兩個縮寫詞的大小寫形式應分別為 Id 和 Ok。如果在采用大小寫混合格式的標識符中將這兩個縮寫詞用作首個單詞,則它們的大小寫形式應分別為 id 和 ok。
首字母縮寫詞的大小寫取決于首字母縮寫詞的長度。所有首字母縮寫詞應至少包含兩個字符。為了便于這些準則的實施,如果某一首字母縮寫詞恰好包含兩個字符,則將其視為短型首字母縮寫詞。包含三個或三個以上字符的首字母縮寫詞為長型首字母縮寫詞。 下列準則為短型和長型首字母縮寫詞指定了正確的大小寫規則。標識符大小寫規則優先于首字母縮寫詞大小寫規則。
兩字符首字母縮寫詞的兩個字符都要大寫,但當首字母縮寫詞作為大小寫混合格式的標識符的首個單詞時例外。
例如,名為 DBRate 的屬性是一個采用 Pascal 大小寫格式的標識符,它使用短型首字母縮寫詞 (DB) 作為首個單詞。又如,名為 ioChannel 的參數是一個采用大小寫混合格式的標識符,它使用短型首字母縮寫詞 (IO) 作為首個單詞。
包含三個或三個以上字符的首字母縮寫詞只有第一個字符大寫,但當首字母縮寫詞作為大小寫混合格式的標識符的首個單詞時例外。
例如,名為 XmlWriter 的類是一個采用 Pascal 大小寫格式的標識符,它使用長型首字母縮寫詞作為首個單詞。又如,名為 htmlReader 的參數是一個采用大小寫混合格式的標識符,它使用長型首字母縮寫詞作為首個單詞。
如果任何首字母縮寫詞位于采用大小寫混合格式的標識符開頭,則無論該首字母縮寫詞的長度如何,都不大寫其中的任何字符。
例如,名為 xmlStream 的參數是一個采用大小寫混合格式的標識符,它使用長型首字母縮寫詞 (xml) 作為首個單詞。又如,名為 dbServerName 的參數是一個采用大小寫混合格式的標識符,它使用短型首字母縮寫詞 (db) 作為首個單詞。
復合詞和常用術語的大小寫規則
不要將所謂的緊湊格式復合詞中的每個單詞都大寫。這種復合詞是指寫作一個單詞的復合詞,如“endpoint”。
例如,hashtable 是一個緊湊格式的復合詞,應將其視為一個單詞并相應地確定大小寫。如果采用 Pascal 大小寫格式,則該復合詞為 Hashtable;如果采用大小寫混合格式,則該復合詞為 hashtable。若要確定某個單詞是否是緊湊格式的復合詞,請查閱最新的詞典。
下表列出了不是緊湊格式復合詞的一些常用術語。術語先以 Pascal 大小寫格式顯示,后面的括號中的是其大小寫混合格式。
BitFlag (bitFlag)
FileName (fileName)
LogOff (logOff)
LogOn (logOn)
SignIn (signIn)
SignOut (signOut)
UserName (userName)
WhiteSpace (whiteSpace)
區分大小寫
大小寫準則只是為了使標識符更易于閱讀和辨認。不能將大小寫規則用作避免庫元素之間的命名沖突的手段。 不要假定所有編程語言都區分大小寫。事實并非如此。不能僅憑大小寫區分名稱。
原文鏈接:https://blog.csdn.net/wcc27857285/article/details/108215549
相關推薦
- 2022-05-25 spring的構造函數注入屬性@ConstructorBinding
- 2022-02-20 Android?WebView開發之WebView與Native交互_Android
- 2022-01-09 ng-zorro中樹(nz-tree)的拖拽
- 2022-12-10 Input系統之InputReader處理合成事件詳解_Android
- 2023-02-09 MongoDB中aggregate()方法實例詳解_MongoDB
- 2022-11-13 Python?argparse模塊實現解析命令行參數方法詳解_python
- 2022-09-03 解決Python3錯誤:SyntaxError:?unexpected?EOF?while?pars
- 2022-07-12 Linux配置nginx開機自啟
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支