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

タイトル Re^3: [解決] プロパティの定義方法で疑問
投稿日: 2008/06/30(Mon) 13:31
投稿者魔界の仮面弁士
>>> Dimだけは省略必須らしく
実は、必須ではありません。

正確には「省略することが推奨されている」です。
言語仕様上は、Public Dim a As Integer という表現でも許容されますので、
エディタの自動補正をオフにして、Public Dim と書いたとしても、コンパイル可能です。

その逆に「省略しないことが推奨される」例としては、
 If True Then
に対する
 If True
という表記があります(Then は省略可能です)。
この他には、ByVal キーワードなども省略しないことが推奨されていますね。


>>> Public な場合は、常にプロパティを使用すべきです。
>>> フィールド変数を Public にするのは、ReadOnly な場合だけにしておきましょう。
>> →このお作法のメリットが理解できません。(泣)

一般論から言うと、フィールド変数というのは、クラス自身以外から
外部操作される事をあまり想定されていない場合が多いものです。

たとえば、Form2 に TextBox を貼っておき、それを Form1 側から
 Form2.Show()
 Form2.TextBox1 = Nothing
 Form2.TextBox2 = Me.TextBox1
のような処理が行われたとしましょう。
こんな事をされたら、Form2 側が困った事態になりますよね。


それゆえ、フィールド変数はできるだけ公開せず、公開するのであれば、
外から操作できないように ReadOnly にする事が推奨されます。

一方、プロパティとして公開されている場合は、通常それらは、
設計当初から、クラス外部からの操作が考慮されている場合が殆どです。

>>> ・では本当のプロパティのメリットは、
その他には、
 (3) Get/Set それぞれのアクセス レベルを変更する事によって、
  外部からは ReadOnly、内部では Read/Write 可能とすることもできる。
とか。


> 理解しました。このせいかどうかは知りませんが、
>「プロパティの一覧」には列挙されないくせに実際は使えるプロパティがありますね。
それは別の話だったりします。

プロパティには、プロパティ一覧に表示させるか、入力ヒント(IntelliSense)に
表示させるかどうかを制御するための属性を付けることができるのです。

その逆に、実際には存在しないのに、プロパティグリッドには表示される物もあります。
たとえば、コントロールの GenerateMember プロパティや Modifiers プロパティなどが
それにあたります。(これらのプロパティは、デザイナによって提供されます)

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

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