WithEventsキーワードによって作成される暗黙のフィールド

VBでコーディングする時、

クラスのフィールドにWithEventsキーワードを設定すると、

コンパイル時、暗黙のうちに

_(アンダーバー)+対象のフィールド名

でフィールドが作成され、

対象のフィールド自体はプロパティ化される。

そのプロパティの中で、イベントの設定等が行われている。

ここまでだったら、コンパイル後の話という事で良いのだが、

実際に暗黙のうちに宣言されたフィールド自体がコード中で使えてしまい、

コンパイルエラーにならないし、警告にもならない。

普通にコンパイルできてしまう。

例えば、今まで_フィールド名で宣言していたものを、

フィールド名に変更したとして、

それを利用している箇所を修正すると思うのだけど、

修正漏れに気づかないといった状況があり得る。

コンパイルエラーか警告にしてくれたら良いのになぁと思う。

Share