c#
編碼規範
---------------------------
一、型別級單位的命名 1
、類。
以class
宣告的類,都必須以名詞或名詞短語命名,體現類的作用。如:
class indicator
當類是乙個特性(
attribute
)時,以
attribute
結尾,當類是乙個異常(
exception
)時,以
exception
結尾:
class colorsetexception
class causeexceptionattribute
當類只需有乙個物件例項(全域性物件,比如
等),必須以
class
結尾,如
class screenclass
class systemclass
當類只用於作為其他類的基類,根據情況,以
base
結尾:
mustinherit class indicatorbase
如果定義的類是乙個窗體,那麼名字的後面必須加字尾
form
,如果是
web窗體,必須加字尾
page:
class printform : inherits form '* windows窗體
class startpage : inherits page '* web窗體
2、列舉和結構
同樣必須以名詞或名詞短語命名。最好體現列舉或結構的特點,如:
enum colorbuttons '
以複數結尾,表明這是乙個列舉
structure customerinforecord '
以record
結尾,表明這是乙個結構體 3
、委派型別
普通的委派型別以描述動作的名詞命名,以體現委派型別例項的功能:
delegate sub dataseeker (byval seekstring as string)
用於事件處理的委派型別,必須以
eventhandler
結尾,如:
delegate sub datachangedeventhandler (byval sender as object, byval e as datachangedeventargs) 4
、介面
與其他型別不同,介面必須要由
i作為字首,並用形容詞命名,突出表現實現介面的類將具有什麼能力:
inte***ce isortable 5
、模組
模組不是型別,他的名稱除了必須以名詞命名外,必須加以字尾
module:
module sharedfunction**odule
上述所有規則的共同特點是,每個組成名稱的詞語都必須是大寫開頭,禁止完全大寫或小寫的名稱。
二、方法和屬性的命名 1
、方法
無論是函式還是子程式,方法都必須以動詞或動詞短語命名。無需區分函式和子程式,也無需指明返回型別。
sub open(byval ***mandstring as string)
function setcopynumber(byval copynumber as integer)
引數需要指明
byval
還是byref
,這一點寫起來會讓程式邊長,但非常必要。如果沒有特別情況,都使用
byval
。引數的命名方法,參考後面「變數的命名方法」。需要過載的方法,一般不寫
overloads
,根據需要編寫過載的方法。 2
、屬性
原則上,字段(
field
)是不能公開的,要訪問欄位的值,一般使用屬性。屬性以簡潔清晰的名詞命名:
property concentration as single
property customer as customertypes 3
、事件
event click as clickeventhandler
event colorchanged as colorchangedeventhangler
三、變數和常數
常數以表明常數意義的名詞命名,一般不區分常數的型別:
const defaultconcentration as single = 0.01
在嚴格要求的**中,常數以
c_開頭,如
c_defaultconcentration
,但最好不要用它,它會帶來輸入困難。
普通型別的變數,只要用有意義的名字命名即可,不可使用簡稱和無意義的名稱諸如a,
x1等,下面給出了良好的例子:
dim index as integer
dim nextmonthexpenditure as decimal
dim customername as string
不能起太長的名字,應該盡量簡潔,如下面的例子:
dim variableusedtostoresysteminformation as string '*
錯誤,太複雜了
dim systeminformation as string '*
正確,簡單明瞭
dim sysinfo as string '*
錯誤,過於簡單
特殊情況可以考慮乙個字母的變數:
dim g as graphic
對於控制項,應該指明控制項的型別,方法是直接在變數後面加以類名:
friend withevents nextpagebutton as button '* 按鈕
friend withevents colorchoicerpanel as panel '* 面版
friend withevents cardfileopendialog as fileopendialog '*
檔案開啟對話方塊
等等,無需規定某種型別的變數的字首,只需把型別寫在後面就行了,試對比下列**:
btncancel.text = "&cancel"
cancelbutton.text = "&cancel"
顯然後者更能使閱讀者明白變數的型別是乙個按鈕。
四、標籤
標籤就是用於
goto
跳轉的**標識,由於
goto
並不推薦使用,所以標籤的使用也比較苛刻。標籤必須全部大寫,中間的空格用下劃線
_代替,而且應該以
_開頭,比如:
_a_label_example:
如此定義標籤是為了與其他**元素充分區別。
五、名字空間
通常,乙個工程使用乙個名字空間,通常不需要用
namespace
語句,而是在工程選項的「
root namespace
」中指定,使用根名字空間可以使**更加整齊,容易修改,這一點是
vb十足的優點。名字空間的語法是:
公司名
.產品名
[.元件名的複數]
如:
namespace ninputer.virtualscreen
namespace ninputer.cardeditor.customecontrols
隨便起乙個名字空間的名字絕對不是乙個好主意,一定要遵守上述規定。
六、注釋
注釋的規則繁多,這裡僅提到其中一點:正常的注釋以
'*開頭,單獨的
'只用來注釋暫時不用的**
'*
這是普通的注釋
'*
這段**在除錯正確後加入
'if usehighspeed(g) = true then ....
這樣能夠方便的採用**注釋工具控制**的使用。
蛙蛙推薦 開源CRM專案開發規範草稿
蛙蛙推薦 開源crm專案開發規範草稿 經過乙個禮拜,我用cmp架構做了乙個客戶管理的demo,並以次來演示怎樣利用這個架構來執行資料訪問,錯誤處理,監測跟蹤等任務,以及如何解決在實際開發過程中可能遇到的問題,由於時間倉促,關於單元測試,web資料夾規劃,css類的命名等內容還沒來得及寫。不過大家可以...
蛙蛙推薦 遠端抓取網頁到本地資料庫 doc
接到乙個任務是把中國名牌 的某些內容新增到我們的 上,位址如下 技術,jscript 服務端指令碼,以及 ado技術,寫了乙個小程式,把這些內容抓取到了本地資料庫。抓取下來,然後就資料庫對資料庫導資料就比較方便了。先建立乙個 access 資料庫,結構如下 id自動編號 標識,主鍵 oldid 數字...
蛙蛙推薦 微軟的常用資源列表
蛙蛙推薦 微軟的常用資源列表 最近微軟中文站點不知不覺的多了很多的訪問量,正是因為它給許多技術人員提供了很 多實用的技術資料和技術支援,筆者經常關注微軟的中文站點,去獲取一些有用的東西,web開發 msdn 微軟開發技巧系列網路講座 msdn 歸檔技術資源庫 資料訪問 資料庫 開發策略和倡議 off...