Visual Basic 2005 ここが便利!IDE編第8回 複雑なオブジェクトもマウスを置くだけで中身が見える! デバッガのデータヒント株式会社ピーデー 川俣 晶2005/09/14 |
|
|
デバッグ中にプログラムの実行を一時停止し、変数の値などを調べることはよくある。開発環境には、それを支援するためのさまざまな機能が追加されてきた。ローカル変数を一覧表示する「ローカル変数の表示機能」、指定した式の値を常に表示する「ウォッチ機能」、特定の式の値を即座に表示する「クイックウォッチ機能」などである。
データヒント機能による変数の確認
これらの機能の中で、特によく使われる機能の1つがクイックウォッチではないかと思う。特定の分類に関係なく、いくつもの変数の現在の値を順次確認していくには便利な機能だからである。しかし、クイックウォッチを使う機会は、確実に減っている。なぜなら、デバッグ中に変数の上にマウスポインタを置くだけで、変数の値が表示される「データヒント機能」(英語版のVisual Studioでは「DataTips」と呼ばれる)が利用可能になったからだ。
実際に、これをVisual Studio .NET 2003で試してみよう。特に意味のある機能を持ったプログラムではないが、簡単なサンプル・コードを作成してブレークポイントで止めてみた。そして、整数型(Integer)の変数sampleIntegerの上にマウスポインタを置いてみよう。
データヒントによる値の表示(Visual Studio .NET 2003) |
プログラムの実行を一時停止させ、マウスポインタを変数上に置くだけで変数の内容をツールチップにより確認できる。 |
この画面ではマウスポインタがキャプチャされていないのでやや分かりにくいが、このとおり「sampleInteger = 123」というツールチップが表示され、容易に変数の値を確認することができた。それに要した手間はマウスポインタの移動だけで、ボタン操作は必要とされていない。とても手軽で便利である。いくつもの変数の値を順次確認していく場合には、この手軽さはありがたい。
しかし、この便利な機能も、整数などの単純型であれば機能するのだが複雑な型ではうまく機能しない。例えば、Sample1クラスのインスタンスを持つ変数sampleObjectの上にマウスポインタを置いても、型のフルネームが表示されるだけで、そのメンバの値は分からない。
データヒントで変数の内容が確認できない例(Visual Studio .NET 2003) |
複雑な型の変数に対しては、その型のフルネームが表示されるだけで、メンバの値までは分からない。 |
強化されたVisual Basic 2005のデータヒント
しかし、この制約はVisual Basic 2005で過去のものになった。同じプログラムをVisual Basic 2005 Express Beta 2で試した例を紹介しよう。
整数型の変数の値が、変数名の上にマウスポインタを乗せると分かるのはもちろん……。
データヒントによる値の表示(Visual Basic 2005) |
Visual Basic 2005でも、当然ながら整数型などの単純な型に対してはその値が表示される。 |
以下のように、オブジェクトも内容の値が分かるようになっている。
オブジェクトのメンバの値まで見られるVisual Basic 2005のデータヒント |
オブジェクトの内容が階層構造として表示され、階層をたどっていくことにより複雑な型でもその内容を確認できる。 |
オブジェクトの中にオブジェクトがあるような階層構造がある場合、+記号の上にマウスポインタを乗せると下の階層がさらに表示される仕様になっている。
この場合、sampleObjectの中には変数iと、オブジェクトsが存在し、オブジェクトsはさらに文字列の配列nameと、整数の配列valueを持っている。マウスポインタを、sampleObject、s、nameの順に移動させた結果として、配列の内容まですべて見えていることに注目しよう。まさに、クイックウォッチを不要とするような素晴らしい機能性である。
そして、すべてを一気に表示するのではなく、指定した階層だけを展開して表示する機能性にも注目しよう。これにより、巨大で複雑なオブジェクトの内容を参照する場合でも、画面が値で埋め尽くされることはなく、必要な値だけをチェックすることができるのである。
Visual StudioあるいはVisual Basicのバージョン・アップといえば、とかく大きな機能の拡張ばかりが取り上げられるが、このような日常の使い勝手に直結する機能の強化も怠っていないところが隠れたポイントといえるだろう。
「Visual Basic 2005 ここが便利!」 |
- 第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 -