.NET VBの変数、クラス、メソッド、プロシージャ等の命名規則
.NET VB(VisualBasic)には、すでに予約されているキーワードや予約までされていないが特定の意味を持つ単語があるので、使用を避けたほうがよい単語や変数やプロシージャ、コントロール名のプレフィックス(接頭辞)や変数、クラス、プロパティ、関数、メソッド等の命名規則について記録しておく。
変数名やプロシージャ名に使用できない単語
予約済みのキーワード
AddHandler | AddressOf | Alias | And | AndAlso | As |
Boolean | ByRef | Byte | ByVal | ||
Call | Case | Catch | CBool | CByte | CChar |
CDate | CDec | CDbl | Char | Cint | Class |
CLng | CObj | Const | Continue | CSByte | CShort |
CSng | CStr | CType | CUInt | CULng | CUShort |
Date | Decimal | Declare | Default | Delegate | Dim |
DirectCast | Do | Double | |||
Each | Else | Elseif | End | Endif | Enum |
Erase | Error | Event | Exit | ||
False | Finally | For | Friend | Function | |
Get | GetType | GetXMLNamespace | Global | GoSub | Goto |
Handles | |||||
If | If() | Implements | Imports | Imports | In |
Inherits | Integer | Interface | Is | IsNot | |
Let | Lib | Like | Long | Loop | |
Me | Mod | Module | MustInherit | MustOverride | MyBase |
MyClass | |||||
Namespace | Narrowing | New | Next | Not | Nothing |
NotInheritable | NotOverridable | ||||
Ject | |||||
Of | On | Operator | Option | Optional | Or |
OrElse | Overioads | Overriddable | Overrides | ||
ParamArray | Partial | Private | Property | Protected | Public |
RaiseEvent | ReadOnly | ReDim | REM | RemoveHandler | Resume |
Return | |||||
SByte | Select | Set | Shadows | Shared | Short |
Single | Static | Step | Step | String | Structure |
Sub | SyncLock | ||||
Then | Throw | To | True | Try | TryCast |
TypeOf | |||||
Variant | |||||
UInteger | ULong | UShort | Using | ||
Wend | When | While | Widening | With | WithEvents |
WriteOnly | |||||
Xor | |||||
#Const | #Else | #ElseIf | #End | #If | = |
& | &= | * | *= | / | /= |
\ | \= | ^ | ^= | + | += |
– | -= | >> | >>= | << | <<= |
特定の意味を持つ単語
Ansi | Assembly | Auto |
Binary | By | |
Compare | Custom | |
Distinct | ||
Equals | Explicit | |
From | ||
Group | ||
Into | IsFalse | IsTrue |
Join | ||
Mid | ||
Off | Order | |
Preserve | ||
Skip | Strict | |
Take | Text | |
Unicode | Until | |
While | ||
#Region |
プレフィックス(接頭辞)
プレフィックスとは、名前の先頭に用途がわかるように短縮形の単語を付けることです。ただし、現在は、「.NET Framework 開発者ガイド」よりハンガリー表記法は使用しないでください。となっているので、推奨されていません。
変数のプレフィックス
データ型 | プレフィックス | データ型 | プレフィックス | データ型 | プレフィックス |
---|---|---|---|---|---|
Boolean | bln | Double | dbl | Object | obj |
Byte | byt | Enum | enm | Short | sht |
Date | dte | Integer | int | Single | sng |
Decimal | dec | Long | lng | String | str |
サンプル
Dim blnflg As Boolean
Dim intPrice As Integer
Dim decPrice As Decimal
Dim lngSize As Long
Dim bytDate As Byte
Dim strWord As String
Dim dteNow As Date
Dim objFrom As Object
コントロール名のプレフィックス
データ型 | プレフィックス | データ型 | プレフィックス | データ型 | プレフィックス |
---|---|---|---|---|---|
Button | btn | Image | img | RichTextBox | rtb |
CheckBox | cbx | ImageList | ilt | SaveFileDialog | sdg |
CheckedListBox | clb | Label | lbl | Shape | shp |
ColorDialog | cdg | LinkLabel | llb | Splitter | spt |
CommonDialog | dlg | ListBox | lst | StatusBar | stb |
ContextMenu | cmn | ListView | lvw | TabControl | tab |
Control | ctr | MonthCalender | mcl | TextBox | txt |
DataGrid | dgd | Panel | pnl | Timer | tmr |
DateTimePicker | dtp | PictureBox | pic | ToolBar | tbr |
ErrorProvider | evd | PrintDaialog | pdg | ToolTip | ttp |
FontDialog | fdg | PrintDocument | pdc | TrackBar | trb |
Form | frm | PrintPreviewControl | ppv | TreeView | tvw |
GroupBox | gbx | ProgressBar | prb | VScrollBar | vsb |
HScrollBar | hsb | RadioButton | rbt |
変数やクラス、メソッド、プロパティ等の名前の付け方
コードの可読性を高めるための命名規則
フォームやクラス、プロパティ、モジュール、構造体、関数名などは、VisualStudio2019では、パスカルケースを採用している。
- 先頭の文字を大文字にする
- 複数の単語を組み合わせ場合、それぞれの単語の先頭文字を大文字にする
- 名前から機能が推測できるようにする。
- 名前は6文字~8文字程度に抑える。あまり短くても、長くてもよくない。
摘要形式 | 使用例 | |
フォーム | パスカル形式 | MainWindow |
クラス、モジュール | パスカル形式 | GetPrice |
構造体 | パスカル形式 | ScoreSet |
変数名 | 小文字統一 | local |
VBでは、大文字と小文字を区別しない。変数名に大文字・小文字を定義した場合はエラーとなる。.Net Frameworkでは、大文字・小文字を区別はする仕様なので、小文字で統一するのがよい。
変数名について
筆者は、変数名についてはキャメルケースを使用している。これは、フォームやクラス、メソッド、プロパティ、モジュール等具体的な処理が書かれているものなかの、単に変数として扱っているかを視覚的に把握するためである。
変数は、キャメルケース、それ以外はパスカル方式を採用している。
メンテナンスフェーズでは、他人のソースコードを解析することが多い。1000行以上(時には2マ万以上)の膨大なソースコードから仕様をリバースすることは、業界的によくあることである。解析作業時にメソッドか変数か分析の方法が変わる。(内部を深く追うか追わないか)そういう意味では、区別しておきたいというの大きな理由である。
変数名に使用できる文字
- a~zなどの小文字やA~Zなどの大文字を含むアルファベット
- 0~9などの数字
- アンダースコア(_)
- 全角文字や半角カタカナ
※日本語の文字はトラブルの原因になることが多いので、使用はしない。もしくは、限定的にする。
変数名を付けるときの制限
- 変数名の最初に数字を使用することはできない。
- VisualBasicで定義されているキーワード、メソッド、プロパティ、オブジェクトに使用されている名前は使用できない。
変数名の名前付け方式
詳しくは、変数名の名前付け方式を参照。
方式 | 内容 | 例 |
---|---|---|
パスカル方式・アッパーキャメルケース | 変数名に複数の単語を使用し、各単語の先頭を大文字にする。 | ProductPrice |
Microsoft Visual Studio Community 2019では、パスカルケースを採用している。