- - PR -
Enum 型プロパティ作成時の命名について
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-02-08 09:16
Enum 型のプロパティで、いつも悩んでしまいます。
例えば、男と女を格納するプロパティを作ると、 下のコードのようになります。 Public Enum 性別 As Integer 男 = 1 女 = 2 End Num Public Property 性別 As 性別 (略) End Property ここで、型の名前と、プロパティの名前がかぶってしまうので、 どうにも気持ちが悪いのでどちらかの名前を無理やり変えています。 みなさんは、こういう Enum 型の型名と、プロパティの名前をどのように していますか? | ||||||||||||||||
|
投稿日時: 2008-02-08 09:36
.NET Framework1.0(VS.NET2002)の頃にMicrosoftの「名前付けのガイドライン」(クラスライブラリ開発向けとありますが、通常のアプリケーション開発向けにも十分参考になります。)を読みましたが、型名とプロパティ名が意味的に同名になるのが素直な命名と考えられるようなパターンでは、そのまま同名を使うことが推奨されていたかと思います。 最新の名前付けガイドラインは確認していません。 「名前付けのガイドライン」または「名前に関するガイドライン」をGoogleで検索すれば1次資料に辿り着けます。 <追記> 検索キーワードに「名前付けのガイドライン」を追加しました。 (msdn2ではなくmsdnにリンクされるこちらの検索結果は資料が古いですが、 たぶん全部和訳されています。) </追記> [ メッセージ編集済み 編集者: よねKEN 編集日時 2008-02-08 14:45 ] | ||||||||||||||||
|
投稿日時: 2008-02-08 09:38
そのプロパティに型名以上の意味があればそれを付け加えますが
そうじゃない場合、型名と同じプロパティ名にしています。 .Netのクラスライブラリもそうなっている場合が多いので問題ないと思いますよ。 | ||||||||||||||||
|
投稿日時: 2008-02-08 09:39
あー、確かにありますねそういうこと。
そのプロパティを持つクラスの外からは名前が同じでも何も問題はないと思いますので、問題はそのクラスのメンバを書くときですよね。 そのクラス内で「性別」と書くとプロパティを指すことになる(多分)と思いますので、列挙型を使っている部分では名前空間を指定するようにするのがいいかもしれませんね。 適当な名前が見つかればいいですけど、プロパティや列挙型の名前をむりやり変なのに変えるよりは名前空間を指定した方が。 | ||||||||||||||||
|
投稿日時: 2008-02-08 10:26
私はEnumには〜Typeを付けます。
意味的にもEnumは性別種、プロパティは性別で違和感もあまりないので。 VBではEnumとプロパティを同名にするとエラーになりますよね? Public Enum 性別Type As Integer 男 = 1 女 = 2 End Num Public Property 性別 As 性別Type (略) End Property | ||||||||||||||||
|
投稿日時: 2008-02-08 12:33
みなさん、ありがとうございます。
VB は、同じ名前ダメだったんですね。 そもそも試してなかったです。 Type って付けるのもいいかもしれません。 参考にあげていただいたサイトなんかも 見てみます。 | ||||||||||||||||
|
投稿日時: 2008-02-08 12:51
性別とかだったらたぶん同じにしそう。 カッコをつければできなかったっけ? 今VBがないので試せないけれど
_________________ かるあ のメモ と スニペット | ||||||||||||||||
|
投稿日時: 2008-02-08 12:55
そういうことはないはずですが、 どんなソースコードを書いた場合でしょうか?
上記コードをVB9.0のコンパイラでコンパイルした限りでは問題ありません。
[]は予約語を識別子として使用するためのエスケープ方法ですね。 [ メッセージ編集済み 編集者: よねKEN 編集日時 2008-02-08 12:57 ] |