.net命名規範的不同之處

來源:互聯網
上載者:User
規範      在你的代碼中使用備註陳述式和下邊就要講的統一命名法則是一個很好的習慣,它們會使你的代碼更加通用。我(作者)已經在微軟工作了近五年的時間了。我不知道你是否跟我一樣,在整合和除BUG時遇到很多問題----因為開發人員沒有遵守統一的命名法則和寫備註陳述式。
  在以前版本的Visual Studio中,微軟曾建議使用匈牙利命名法來寫代碼,並鼓勵開發這位寫出統一格式的代碼而使用相同的法則。例如:
  
  
  變數
  命名
  
  CString
  SzString
  
  char
  CmyChar
  
  char*
  PmyChar
  
  Long
  LMyVariable
  
  LPCSTR
  LpStr
  
  Int
  NMyNumber
  
  
  在最近發布的.net和它的程式設計語言中,微軟更換了他的這一法則。如果你用過Delphi編程,你會看到新的法則與Delphi(Pascal)有些相似。
  
  為避免代碼衝突(這樣做也會讓你的代碼更為通用),就要使用命名法則,這是一個很好的編程習慣。好啦,這裡介紹一些常用的法則。
  
  ◆命名變數、方法、以及屬性
  
  變數、方法和屬性的名稱的第一個字母應該大寫,並且名稱應該能表達出它們的用途(或者說是意義)。
  
  變數
  .NET 命名
  匈牙利命名
  描述
  
  Cstring
  EmployeeName
  szName
  Name of an employee.
  
  Int
  AttendanceCounter
  nCounter
  A counter of type long.
  
  Long
  NumberOfBytes
  lBytes
  A long type variable stores bytes.
  
  
  有時我們習慣於在定義中使用底線 "_",例如: Add_Data(int a, int b). 按照新的命名法則,這不是一個好的編程習慣,雖然它並沒有錯。你應該將定義 Add_Data 改為 AddData。 這不是微軟的標準,你也不是必須按照這些法則。但是,在一些地方你會明白下邊這些法則的合理性。
  
  就我個人而言,我更喜歡匈牙利命名法。當然,變數也使用同樣的法則。如果你記得匈牙利命名法的話,一個布爾型的變數定義以"b"打頭,比如:
  
  BOOL bFlag = TRUE;
  
  
  新的法則不推薦使用Flag 和 "b":
  
  bool IsFileFound = true;
  
  你可以瀏覽一下MSDN,那裡邊有更多有關新的法則的說明。
  
  
  ◆命名組件以及集合(Assemblies)
  
  為避免代碼衝突, 按照命名法則給你的庫(在 .NET 中稱為assembly)命名是一個良好的編程習慣。假定你是MindCracker 公司的,你在開發一個用於擴充C# database 類的庫, 把它的名字命名為MindCracker.DatabaseAssembly.ADOSet 要比MyAssembly.Database.ADOSet好的多。
  
  再假定你的庫有一個方法,它是從表中讀取資料,並返回一個資料集。你如果取名為 DataSet return_data()的話,改為DataSet ReturnData()好啦.
  
  你還應該在命名中遵循一個統一的單詞順序。例如,你有倆個表,分別為Employee 和 Manager ,並且你還為它們分別定義了一個向表裡邊插入一條記錄的方法, 那麼方法名AppendEmployee 和 AppendManager 要比AppendEmployee 和 ManagerAppend要好。
  
  
  ◆迴圈
  
  迴圈或者是其它塊兒結構應該對齊左右大括弧,就像下邊這樣:
  
  for (i = 0; i < 100; i++)
  {
  ...
  }
  
  或者
  
  for (i = 0; i < 100; i++){
  ...
  }
  
  
  我更喜歡的二種方法,因為很容易清楚一個塊兒結構和嵌套塊兒結構。
  
  
  ◆匈牙利命名法(efoxxx附)
  
  匈牙利命名法是一名匈牙利程式員發明的,而且他在微軟工作了多年。此命名法就是通過微軟的各種產品和文檔傳出來的。多數有經驗的程式員,不管他們用的是哪門兒語言,都或多或少在使用它
  
  這種命名法的基本原則是:
  
  變數名=屬性+類型+對象描述
  
  即一個變數名是由三部分資訊組成,這樣,程式員很容易理解變數的類型、用途,而且便於記憶。
  
  下邊是一些推薦使用的規則例子,你可以挑選使用,也可以根據個人喜好作些修改再用之。
  
  ⑴屬性部分:
  
  全域變數: g_
  
  常量 : c_
  
  類成員變數: m_
  
  ⑵類型部分:
  
  指標: p
  
  控制代碼: h
  
  布爾型: b
  
  浮點型: f
  
  無符號: u
  
  ⑶描述部分:
  
  初始化: Init
  
  臨時變數: Tmp
  
  目的對象: Dst
  
  來源物件: Src
  
  視窗: Wnd
  
  
  下邊舉例說明:
  
  hwnd: h表示控制代碼,wnd表示視窗,合起來為“視窗控制代碼”。
  
  m_bFlag: m表示成員變數,b表示布爾,合起來為:“某個類的成員變數,布爾型,是一個狀態標誌”。

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。