tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re: クラス名について
投稿日: 2007/12/28(Fri) 14:02
投稿者よねKEN
> 私はこれまで人から教えてもらったことから、クラス名は、はじめに"cls"をつけていました(例えば、"clsCar")。

VB6以前は一応は標準的な名前付けの方法だったと思います。
VB.net(VB.net2002(7.0)、2003(7.1)、VB2005(8.0)、VB2008(9.0))になってからは、
プレフィックスを付けないのが一般的になっていますね。

> しかし、"cls"をつけるのは一般的ではないと最近思い、
> "cls"をつけないでクラス名を宣言することにしています。
> そうすると、当然のことながら、クラス名とオブジェクト名が同じになって、
>  エラーが出ると思うのですが、こういう場合は皆さんどのようにして解決されていますか?

私の場合ですが、ローカル変数とインスタンス変数/クラス変数とで扱いを変えます。

○ローカル変数の場合
System.IO.StreamReaderというファイル操作をするときにはよく使うクラスを例にとると
このクラスの場合、たいていは1メソッドの中でのみ使うローカル変数を宣言して使うので、
例えば以下のように宣言します。

例1)
Dim sr As StreamReader

クラスの頭文字を取っただけの名前です。
短い範囲でしか変数srを使わないので、それで特に困ることがありません。

ただし、ローカル変数でも重要なものは他の変数とはっきり区別できる
意味のある名前を付けますので、必ず上記のような略称を使うという意味ではありません。

○インスタンス変数/クラス変数
インスタンス変数はプロパティのために用意されることが多いと思いますが、
その場合は、以下のように宣言します。

例2)
' インスタンス変数の宣言
Private m_Count As Integer


' プロパティの宣言
Public ReadOnly Property Count() As Integer
   Get
       m_Count
   End Get
End Property

プロパティの名前と合わせた上でプレフィックスとして"m_"を付けるスタイルです。
つまり、"m_"を付けるという点とクラス名に関わらずその意味に即した形で命名するということです。
特に意味づけが不要な場合はクラス名をそのまま使うこともありますが、
この場合も"m_"を付けているので問題ありません。

あまりやりませんが、Publicな変数を宣言する場合は、クラス名をそのまま変数名にすることもあります。

例3)
Public Color As Color

>クラス名とオブジェクト名が同じになって、エラーが出ると思うのですが

お勧めはしませんが、文法上も動作上も特に問題はありませんよ。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。