[VB2010]自動実装プロパティ その2

けろ-みおさんより

[VB2010]自動実装プロパティ の記事に

>仕組み上、本当に等価であるのか?ILDASMの結果を掲載してもらえると嬉しいです。

というコメントををいただいたので調べてみました。

まず class1 と class2 というクラスを準備し、

class1にはこれまで通りの書き方でプロパティを作成

class2には自動実装プロパティを作成

コードは下記の通りです。

これを ILDASM で比較表示してみました。

上記の結果から、これまでの「書き方と自動実装プロパティは等価である」と言うことを証明できました。


ついでなので VS2010 CTP の C# の方も見てみました。

VB.NETと同じように、class1にはこれまで通りの書き方で、class2には自動実装プロパティで書きました。

ちなみに C#の方はたしか 3.0 のバージョンから自動実装プロパティが使用できるようになったと記憶しています。

で ILDASM の結果は下記の通りです。

class2の方では裏で<employee>k__BackingField という private stringが作成されていることがわかります。

これはMSDNの自動実装するプロパティ (C# プログラミング ガイド) で バッキングフィールド という名称で説明がされています。

ということで、C#の方は厳密には等価ではないことがわかります。

[VB2010]行継続文字

行継続文字は行連結文字と呼ばれることもあります。(このページでは行継続文字と表記します)

コードエディタでコードを記述する際、ステートメントが長くなると横スクロールをする必要がでてきます。

ステートメントが長いことは問題ないのですが、読みにくいため複数行に分けて記述することを検討する必要があります。

VB2008までは、行を分割する際に アンダースコア(_)を使用していました。

たとえばメッセージボックスのステートメントは下記のように行継続文字で複数行に分けて書くことが可能です。

MessageBox.Show("こんにちは", _
  "挨拶表示", _
  MessageBoxButtons.OK, _
  MessageBoxIcon.Information)

コードを見ていただければわかりますが、1つのステートメントを4行に分割するには、行継続文字が3つ必要です。


VB2010における行継続文字

VB2010では、行継続文字を省略することが可能となりました。

これにより以前のように行分割位置に毎回アンダースコアを記述する必要がなくなりました。

MessageBox.Show("こんにちは",
  "挨拶表示",
  MessageBoxButtons.OK,
  MessageBoxIcon.Information)

この機能は多くのVBユーザーが待ち望んでいたのではないでしょうか?

ちなみに、これまでどおり行継続文字を使用しての行分割も可能です。

HIRO’s.NETに Visual Studio 2010 CTP カテゴリを追加しました。

久々に HIRO’s.NET を更新しました。


某PJが進行中ということもあり、最近 Visual Studio 2010 CTPについて調査を進めています。


この調査結果を HIRO’s.NET の Visual Studio 2010 CTP という新しいカテゴリにアップしていきたいと思います。


現時点での記事は下記の通りです。


・Visual Studio 2010 CTP


01. Visual Studio 2010とは
02. 評価ガイドの入手


・インストール


01. 必要ファイルの入手
02. Virtual PC 2007のインストール
03. Virtual PCイメージの作成
04. Virtual PCイメージの設定
05. Virtual PCの起動



・IDE




01. Visual Studio 2010 CTPの起動
02. 新しくなったスタートページ


現時点では他のサイトでも見られるありきたりの記事ばかりですが、HIRO’s.NET流にまとめてみましたので興味のある方は読んでみてください。