visualstudio 2008c#程式設計規範
命名規範制定意義 1 方便**的交流和維護,便於日後自己的再次閱讀。
2 不影響編碼的效率,不與大眾習慣衝突。
3 使**更美觀、閱讀更方便。
4 使**的邏輯更清晰、更易於理解
命名規範制定原則首要原則
有意義的,描述性的詞語來命名。能夠一眼看出它作什麼。別使用會引起誤解的名字。如果名字一目了然,就無需用文件來解釋方法的功能了
1. 除約定俗成的,別用縮寫。用name, address, salary等代替 nam, addr, sal
2. 除用於迴圈,別使用單個字母的變數象i, n, x 等. 而要使用 index, temp等。
for ( int i = 0; i < count; i++ )
其他習慣
l 除了介面控制項外,不要使用型別字首。比如:使用名稱amount,而不是 intamount;
l 類:使用名詞、名詞短語命名。比如:public class filestream;
l 方法:使用動詞、動詞短語開始。比如:createuser(), removeat()等;
l 介面:以 i 開始,後面加上名詞、名詞短語、形容詞命名。比如:idisposable;
l 常量:所有單詞大寫,多個單詞之間用 "_" 隔開。public const string page_title = "welcome";
l 命名空間:基本格式:
companyname/projectname.technologyname[.feature][.design]
a) companyname/projectname:公司名、專案名稱或產品名稱;
b) technologyname:穩定的、公認的技術名稱或架構層次名稱;
c) [.feature][.design]:可選的功能與設計;
規範 1、用pascal規則來命名方法和類.(第乙個單詞首字母大寫,後面連線的每個單詞首字母都大寫)
public class database ;public void getdatatable()
2、類:使用名詞、名詞短語命名。比如:public class filestream;
2.用camel規則來命名區域性變數和方法的引數. (第乙個單詞不大寫,後面連線的單詞首字母大寫)
public void adduser(string userid, byte password)
3.所有的成員變數前加字首 _
public class database
4.介面的名稱加字首 i
inte***ce icompare
5.自定義**屬性類以attribute結尾
public class operationattribute : attribute
6.自定義的異常以exception結尾
7.方法的命名.一般將其命名為動賓短語,「動詞+物件」.
getrecorddata();getpath();createfile();
8.**的縮排.要用tab,而不要用space.
9. 使用帶有說明性的變數名。
(a)避免單字串的變數名,使用類似於index或temp這樣有意義的名字。
(b)對於public或protected型別的變數避免使用匈牙利表示法。
(c)不要縮寫單詞。
10. 所有的類成員變數應該被宣告在類的頂部,並用乙個空行把它們和方法以及屬性的宣告區分開.
11.用有意義的名字命名namespace,如:產品名、公司名.
12.建議區域性變數在最接近使用它時再宣告.
13.使用某個控制項的值時,盡量命名區域性變數.
14.把引用的系統的namespace和自定義或第三方的用乙個換行把它們分開.
15.檔名要能反應類的內容,最好是和類同名,乙個檔案中乙個類或一組關連類.
16.目錄結構中要反應出namespace的層次.
17.大括號"{"要新起一行 .
18.在和你的**縮排處於同乙個級別處為該行**新增注釋
控制項命名
控制項的名稱中需要加上字首,之所以這樣做是為了區分介面的控制項和普通的物件,由於介面修改往往非常頻繁,區分開來能使你更快速的找到控制項,從而修改介面。舉乙個例子:
介面有10個textbox、10個label。乙個textbox對應乙個label,為了完成讀寫,你至少要有20條語句來從控制項進行取、賦值操作,如果有字首的話,輸入this.txt,你就幾乎馬上能找到這個控制項。反之,如果沒有字首,由於視窗或頁面物件擁有大量的屬性和變數(>100個),你將花費大量時間來查詢。另外乙個textbox對應乙個label(乙個代表值,乙個代表名稱),它們往往指同一樣事物,如果有字首,就很容易區分這兩個控制項。
200 島嶼數量
複雜度分析 時間複雜度 o m n 其中 m 和 n 分別為行數和列數。空間複雜度 最壞情況下為 o m n 此時整個網格均為陸地,深度優先搜尋的深度達到m n。class solution int numislands vector grid int cnt 0 for int i 0 i gri...
200 島嶼數量
leetcode 200.島嶼數量 島嶼另一種型別 求周長 leetcoed 463.島嶼的周長 廣度優先遍歷 bfs 深度優先遍歷 dfs 2.1 dfs 就是遇到乙個 1 遞迴下去繼續找 1 四周沒有 1 之後,逐層返回到上一層找四周剩餘的 1 本題不需要回溯 直接把 訪問過的標記即可 廣度優先...
200 島嶼數量
給你乙個由 1 陸地 和 0 水 組成的的二維網格,請你計算網格中島嶼的數量。島嶼總是被水包圍,並且每座島嶼只能由水平方向和 或豎直方向上相鄰的陸地連線形成。此外,你可以假設該網格的四條邊均被水包圍。示例 1 輸入 grid 1 1 1 1 0 1 1 0 1 0 1 1 0 0 0 0 0 0 0...