特集:VB 10概説 Visual Basic 2010の新機能 尾崎 義尚2011/05/17 |
|
■1. 軽く振り返り
昨年発売されたVisual Studio 2010(以下、VS 2010)で、Visual Basic(以下、VB)はバージョン「10」(以下、VB 10)になった。.NETと統合されたのがバージョン「7」からなので、.NET対応版としても4つ目のバージョンになる。
VB 10の仕様検討に当たり、マイクロソフトは言語チームを統合するという大きな決定をした。.NET Frameworkが発表されたとき、大きな特徴としてうたわれていたのが、さまざまな言語が使えることであった。実際にさまざまな.NET対応言語が開発されており、マイクロソフトからもC#、VB、F#、Python(IronPython)、Ruby(IronRuby)などが提供されている。
VS 2008までは、それぞれの言語ごとに開発チームがあり、それぞれの言語の特徴に応じた実装がされていた。これによって、それぞれの言語ユーザーに最適な機能が実装できるという利点があったが、その一方で「C#で実装されているものがVBで実装されない」といった、言語ごとの格差が発生することになってしまった。
そこで、マイクロソフトはVS 2010の開発に当たり、これら5つの言語チームを統合し、「Visual Studio Managed Languages Team」という1つのチームにした。また、C#とVBは、C#の言語設計者として知られるAnders Hejlsberg氏が2つの言語を同時に設計することにより、格差がなくなるようになっている。マイクロソフトはこれを「共進戦略(co-evolution strategy)」と呼んでいる。
そうして生まれたVB 10は、C#の前のバージョンであるC# 3.5に実装されていながらVB 9に実装されていなかった機能に加えて、.NET Framework 4(以下、.NET 4)で新たに追加された機能にも対応している。本稿では、これらVB 10(以下では、Visual Studioのバージョン名に合わせて「VB 2010」と表記する)で新たに追加された機能について解説していく。
■2. 「_」(アンダースコア)が不要になった=「暗黙の行継続」
最初にお伝えしておく必要があるのが、この変更であろう。非常に小さい変更に見えるが、この効果は大きいし、恐らくコンパイラの変更も大きかったことは容易に想像できる。
もともとVBは、行指向であるBASICの流れをくむ言語であるため、BASICと同様にステートメントの終わりは、行の終わりを基本としてきた。しかし、現実的にプログラムを作る場合、1行にしてしまうと読みづらくなることが多いため、行が終わっていないことを示す「行継続文字」という名前で、「_」(アンダースコア、アンダーライン)を記述することで、複数行にわたるステートメントを記述することができた。この記述方法は、VB 2008で採用されたLINQでも継続されており、長くなりがちなLINQのクエリ記述を読みやすいように改行するには、アンダースコアが必要であった。
VB 2010ではこのルールを変更して、多くのVBプログラマーの夢であったアンダースコアの廃止(=暗黙の行連結)を実現したのである。
今回の変更で、アンダースコアが必要になるケースはほとんどなくなった。では、具体的にどのような場合にアンダースコアを省略できるかを解説していこう。
(1)コンマ「,」の後
(2)かっこの前後
(3)中かっこの前後
(4)XMLリテラル内の埋め込み式の前後
(5)連結演算子「&」の後
(6)代入演算子「=」「&=」「:=」「+=」「-=」「*=」「/=」「\=」「^=」「<<=」「>>=」の後
(7)式内の二項演算子「+」「-」「/」「*」「Mod」「<>」「<」「>」「<=」「>=」「^」「>>」「<<」「And」「AndAlso」「Or」「OrElse」「Like」「Xor」の後
(8)Is演算子、IsNot演算子の後
(9)メンバーの修飾子文字「.」 の後
(10)XML軸プロパティ修飾子「.」「.@」「...」の後
(11)属性記号の前後
(12)クエリ演算子の前後
(13)For EachステートメントのInキーワードの後
(14)コレクション初期化子のFromキーワードの後
それぞれの条件を具体的なコードで記述してみたので、以下のサンプル・コードを参考にしてほしい。
|
|
暗黙の行継続の例 | |
さまざまなケースで行継続文字を指定する必要がなくなっていることが分かる。 |
このように、「すでに行継続文字を指定する必要がなくなった」といっても問題がないレベルだ。筆者が実際にコードを書いてみても、不自然な場所で改行した場合を除いて、行継続文字が必要になるケースはまったくなかった。もし、行継続文字がなくてコンパイル・エラーになってしまうときは、最初に自分が書いたコードの誤りをチェックし、それでも必要な場合にのみ書くことになるだろう。
それでは、次のページからVB 2010の新機能を説明していこう。
INDEX | ||
特集:VB 10概説 | ||
Visual Basic 2010の新機能 | ||
1.「_」(アンダースコア)が不要になった=「暗黙の行継続」 | ||
2.C#から引き継がれた新機能:自動実装プロパティ/コレクション初期化子/複数行のラムダ式 | ||
3.VB 2010の新機能:ジェネリックの共変性と反変性/動的プログラミングのサポート | ||
4.VB 2010の新機能:並列処理、 Visual Studio 2010 SP1の新機能 | ||
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|
- - PR -