• ベストアンサー

命名規則 VB 構造体

VBの構造体の命名はどうすればいいですか? strXXX as string intYYY as integer ???ZZZ as 構造体 udtZZZ as 構造体 でいいのでしょうか? ユーザー定義型ということでいいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.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 では「ユーザー定義型」と表現してます。 私見でした。

pokepotto
質問者

お礼

貴重なご意見ありがとうございました。

その他の回答 (1)

noname#22222
noname#22222
回答No.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

pokepotto
質問者

お礼

PCが動かなくなり、IDが分からなくなってしまって お礼が遅れてしまいました。 ご回答どうもありがとうございました。 参考にさせていただきます(^^)

関連するQ&A