C#程式編寫規範

来源:https://www.cnblogs.com/vijing/archive/2019/02/22/10417531.html
-Advertisement-
Play Games

寫程式的過程應該是一種藝術創作過程,我們寫出來的程式體現了我們的技術水平和個人修養, 也就是說作為程式員,自己寫的程式就是自己的臉面。讓自己有臉有面的第一步就是要遵循程 序編碼規範,這裡總結一些程式編寫規範。 1. 命名規範 表達清晰是命名規範的核心,常見的命名分格有: 1.1 Pascal風格 包 ...


寫程式的過程應該是一種藝術創作過程,我們寫出來的程式體現了我們的技術水平和個人修養,

也就是說作為程式員,自己寫的程式就是自己的臉面。讓自己有臉有面的第一步就是要遵循程

序編碼規範,這裡總結一些程式編寫規範。

1. 命名規範

  表達清晰是命名規範的核心,常見的命名分格有:

  1.1 Pascal風格

    包含一到多個單詞,每一個單詞第一個字母大寫,其餘字母小寫。例如:HelloWorld

  1.2 Camel風格

    包含一個到多個單詞,第一個單詞首字母小寫,其餘單詞首字母大寫。例如:name, userPhone

  除了參數與變數之外,所有命名空間,類,函數,介面,屬性等名稱的命名,使用Pascal風格

  參數與變數的命名使用Camel風格

2.通用命名約定

  約定的是如何選擇最適當的名稱

  2.1 命名方式

    2.1.1 選擇容易讀的英文名稱,可讀性比詳細描述重要。例如:ScreenX 比 ScreenHorizontally

       更具有可讀性

    2.1.2 除了下畫線之外,不要使用連字元或者其他非字母數字字元

    2.1.3 避免使用與常用編程語言的關鍵字衝突的標識符

    2.1.4 變數和方法參數使用Camel風格

    2.1.5 不要使用成員變數屬性作為成員變數的首碼(其他變數命名也一樣)。例如:不要像 

    Users m_users; 這樣定義成員變數,應該是 Users userModel;

  2.2 字母縮寫

    通常不要使用縮寫,除非這種縮寫已被廣泛接受,或者團隊當中大家都認可一種縮寫。

  2.3 namespace命名

    命名空間的命名採用Pascal風格,取名的一般規則為Zhangsan.ProjectName(人名.項目名稱),

    需要用複數時,使用複數;例如使用System.Collections而不是System.Collection

    需要縮寫時,不需要加複數;例如使用System.IO而不是System.IOs

  2.4 類,結構和介面命名

    2.4.1 按照Pascal大小寫格式,使用名詞或者名詞短語為類,介面和值命名

    2.4.2 介面命名以字母I為首碼,例如,Icomponent

    2.4.3 派生類的末尾使用基類的名稱。例如從Stream繼承的Framework類型以Stream結尾

3 代碼編碼規範

  3.1 適當使用空行,來增加代碼的可讀性

    3.1.1 應該添加一行空行的情況:

        1.方法之間

        2.局部變數和它後面的語氣之間

        3.方法內的功能邏輯部分之間

    3.1.2 應該添加兩行空行的情況:

        1.同一文件的不同部分之間

        2.在類,介面及彼此之間

  3.2 避免使用大文件。如果一個文件里的代碼超過300~400行,必須考慮將代碼分開到不同的類中

  3.3 避免一個方法代碼行數超過25行。如果超過,應該考慮將其分解成不同的方法。

  3.4方法的命名。一般將其命名為動賓短語。一個方法只完成一個任務。不要把多個任務組合到一個方法中,

    即使那些任務非常小。

  3.5 避免使用很多成員變數,聲明局部變數,並傳遞給方法。在方法內部可以定義變數,被稱為

    局部變數;在類內部可以定義變數,被稱為成員變數

  3.6 不要在方法間共用成員變數,如果在幾個方法間共用一個成員變數,那就很難知道哪個方法什

    麽時候修改它的值。

  3.7 布爾型變數或者方法一般可以用iscanhas或者should做首碼。如,isFinished, canWork等

  3.8 在類的頂部聲明所有的成員變數,靜態變數聲明在最前面

4. 控制項命名

  c#控制項命名往往採用首字母小寫,其後的單詞首字母大寫的方式進行命名,而且往往以控制項縮寫作為首碼,

  後面跟名字。舉例:lblName(存放Name的lable), btnEdit(編輯button)

  常見的控制項縮寫如下:

 5. 註釋

  5.1 三斜杠(///)方式

    一般用於類或者方法的前面

  5.2 雙斜杠(//)方式

    一般是對臨時變數,屬性等的註釋,當然也可以用在類或者方法前面,反正都是註釋

  5.3 塊註釋(/*XXXX*/)方式

    一般用於一段連續的註釋代碼塊

6. 參考文章

  1.《c#從入門到精通(第二版)》 人民郵電出版社

  2. https://www.jianshu.com/p/dc26cb8ffcb9

  3. https://blog.csdn.net/antchen88/article/details/56282160

  4. http://blog.jobbole.com/86170/

 

 

    

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原文同步發表至個人博客【夜月歸途】 原文鏈接:http://www.guitu18.com/se/java/2019-02-22/29.html 作者:夜月歸途 出處:http://www.guitu18.com/ 本博客中未標明轉載的文章歸作者夜月歸途和博客園所有。 歡迎轉載,但未經作者同意必須保 ...
  • 73、反向輸出一個鏈表。 74、列表排序及連接。 75、算一道簡單的題目。 76、編寫一個函數,當輸入n為偶數時,調用函數求1/2+1/4+...+1/n,當輸入n為奇數時,調用函數1/1+1/3+...+1/n。 77、迴圈輸出列表。 78、找到年齡最大的人並輸出。 參考資料: Python 10 ...
  • 快速排序可能沒你想的那麼簡單!如何選擇基準?如何快速分區?如何減少數據交換次數?如何使用非遞歸方法? ...
  • MAC homebrew自2018/3/31之後棄用homebrew/php 詳細:https://brew.sh/2018/01/19/homebrew-1.5.0/ 所以不能再用下麵的方法安裝xdebug了,下麵的方法不行!下麵的方法不行!下麵的方法不行! 所以,安裝xdebug我們可以手動編譯 ...
  • package 向家康; import java.util.concurrent.ThreadLocalRandom; public class 練習21 { public static void main(String[] args) { // 隨機一個0--1之間的小數 double n=Mat ...
  • 原創文章,轉載請標註出處: "《Java基礎系列 二進位操作》" 概述 Java源碼中涉及到大量的二進位操作,非常的複雜,但非常的快速。 Java二進位表示法 首先瞭解下二進位,二進位是相對十進位而言的,當然還有八進位,十六進位等等,我們常用的都是十進位,電腦用的都是二進位,而符號表示常用十六進位 ...
  • 1. 查看Nginx的配置文件 命令 nginx -t ,如圖 2. 進入配置文件目錄 並查看目錄 cd /usr/loxa/nginx/conf , 可以看見有一個 nginx.conf文件 一個vhost 目錄 3. 我們先編輯 nginx.conf, 主要的這個 service 這是另一個配置 ...
  • 實常式序的界面效果如下圖所示: 在表單中的搜索條件有姓名,學號,成績。他們在一行中按照水平三等分排列。 在cshtml中用html實現上述表單效果的的代碼如下: 1 <form class="form-horizontal" role="form"> 2 <div class="row"> 3 <d ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...