• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • VB.net編碼規范

    發表于:2008-04-10來源:作者:點擊數: 標簽:
    在 開發 中保持良好的編碼規范是十分重要的。我所采用的新的 VB .net 編碼規范,是一種被證明能明顯改善代碼可讀性,并有助于代碼管理、分類的編碼規范。采用這種編碼規范,能避免如匈牙利命名法帶來的繁長前綴,便于記憶變量的用途。 下面介紹這種編碼規范。
    開發中保持良好的編碼規范是十分重要的。我所采用的新的VB.net編碼規范,是一種被證明能明顯改善代碼可讀性,并有助于代碼管理、分類的編碼規范。采用這種編碼規范,能避免如匈牙利命名法帶來的繁長前綴,便于記憶變量的用途。

      下面介紹這種編碼規范。

      一、類型級單位的命名

      1、類
      
      以Class聲明的類,都必須以名詞或名詞短語命名,體現類的作用。如:Class Indicator

      當類是一個特性(Attribute)時,以Attribute結尾,當類是一個異常(Exception)時,以Exception結尾:
    Class ColorSetException
    Class CauseExceptionAttribute

      當類只需有一個對象實例(全局對象,比如Application等),必須以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作為前綴,并用形容詞命名,突出表現實現接口的類將具有什么能力:
    Interface ISortable

      5、模塊

      模塊不是類型,他的名稱除了必須以名詞命名外,必須加以后綴Module:
    Module SharedFunctionsModule

      上述所有規則的共同特點是,每個組成名稱的詞語都必須是大寫開頭,禁止完全大寫或小寫的名稱。


      二、方法和屬性的命名

       1、方法

      無論是函數還是子程序,方法都必須以動詞或動詞短語命名。無需區分函數和子程序,也無需指明返回類型。

    Sub Open(ByVal CommandString 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 ....
    這樣能夠方便的采用代碼注釋工具控制代碼的使用。

      以上簡單的介紹了我使用的VB.net代碼規范,這個代碼規范也適用于C#。僅供大家參考。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>