- ベストアンサー
命名規則 VB 構造体
VBの構造体の命名はどうすればいいですか? strXXX as string intYYY as integer ???ZZZ as 構造体 udtZZZ as 構造体 でいいのでしょうか? ユーザー定義型ということでいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。KenKen_SP です。 ご質問のように変数にプレフィックスを付ける表記をハンガリアン表記法 と呼び、MS がかつて推奨していたものです。特に Visual Basic 6.0 まで 広く使われていました。 これに従うならば、ご質問にある変数名で良いと思います。 しかし、現在は MS は推奨していません。それどころか、一転してハンガ リアン表記法はむしろ MSDN にある名前付けのガイドラインに違反した 表記法とされています。 詳しくは、MSDN ライブラリを参照して下さい。 これには賛否両論があり、どちらが良いのかは議論がなされている最中です が、今後 MS がハンガリアン表記法を推奨しないことを考えれば、いずれは 使われなくなく表記法ですね。 どちらが良いのか、その是非については述べません。ご自身が判断するべき ことだからです。何より大切なポイントは自分が見ても、他人がみても 「変数名はわかりやすく」 です。このような表記法の変化に振り回されて、このポイントがおろそかに なるようではどんな表記法も無意味です。その意味で #1 ご回答の > 1)見たら判る、(2)一貫している、ならばOKではと考えます。 は、的確でまさにその通りだと思います。 個人的な好みの話をすれば、私は通常変数にはプレフィックスを付け、 構造体のメンバには付けません。 Private Type STAFFINFO ID As Long Name As String Address As String Tel As String End Type Sub xxxx() Dim udtSI as STAFFINFO With udtSI .ID = 1 .Name = "名前" .Address = "住所" .Tel = "012-3456-7890" End With End Sub のような感じですが、プレフィックスを付けると With udtSI .lngID = 1 .strName = "名前" .strAddress = "住所" .strTel = "012-3456-7890" End With となって、通常変数なのか構造体のメンバなのか見難くなるからです。 余談ですが、構造体のことを VB では「ユーザー定義型」と表現してます。 私見でした。
その他の回答 (1)
マイクロソフトが推奨している命名規則に関する質問であれば、それで宜しいと思います。 が、私は、 Dim mudtMenu AS MENU_TYPE でなく Dim MyMenu As MENU としています。 Dim typMenu As MENU も、「ありかなー」と思います。 要は、(1)見たら判る、(2)一貫している、ならばOKではと考えます。 Private Type MENU TitleCaption As String * 24 ' トップメニュータイトル MenuCount As Integer ' メニュー総数 SubItems(5) As Integer ' 各メニューの項目数 MenuNames(5) As String * 16 ' 主メニュー名 ' ----+----1----+----2---- LargeIcons(5, 19) As String * 24 ' Icons\Large\xxxxxxxx.ico SmallIcons(5, 19) As String * 24 ' Icons\Large\xxxxxxxx.ico IconTexts(5, 19) As String * 12 ' アイコンテキスト AppTypes(5, 19) As String * 1 ' アプリケーションの種類 AppNames(5, 19) As String * 20 ' アプリケーション名 AppDescs(5, 19) As String * 32 ' アプリケーションの説明 ViewMode As Integer ' 表示モード End Type Dim MyMenu As MENU
お礼
PCが動かなくなり、IDが分からなくなってしまって お礼が遅れてしまいました。 ご回答どうもありがとうございました。 参考にさせていただきます(^^)
お礼
貴重なご意見ありがとうございました。