| NetDictionaryで始める Webサービス・プログラミング 9.イベント・ハンドラを記述する
デジタルアドバンテージ |
|
ネームスペースの指定を追加したら、次はイベント・ハンドラであるbutton1_Clickに次のコードを記述する(解説のために各行には行番号をつけている)。今回のアプリケーションに必要なコードはこれですべてだ。
|
|
| ボタンがクリックされたときに実行されるコード |
コードを見れば分かるが、プロキシ・クラスのおかげで、インターネットの先にあるWebサービスであっても、プログラムではそれを意識することなく使用することができる。
簡単にプログラムの解説をしておこう。1行目は、VS .NETにより自動生成された部分だ。まず、3行目でWebサービス・メソッドを含むクラスのインスタンスicdを作成する。次に4行目でテキスト・ボックス(textBox1)で入力されている検索文字列を引数としてWebサービス・メソッドであるSearchWordメソッドを呼び出す。このとき第2引数には“false”を指定した。つまり完全に一致する単語のみを検索する。このメソッドの戻り値はWORD型の配列となる。完全一致で単語を検索しているため、ほとんどの場合、ヒットする単語は1つだけだが、例えば「IDE」などを検索した場合、統合開発環境を示すIDE(Integrated Development Environment)と、ハードディスクのインターフェイスであるIDE(Integrated Drive Electronics)の2つがヒットする。ただし今回はサンプル・プログラムということで、5行目のように、常に配列の先頭をヒットした単語として処理している。どの単語が先頭にくるかはサーバでのデータベースの取得結果に依存してしまう。一方、ヒットする単語が見つからない場合には、戻り値は“null”となる。今回はこのための処理を行っていないが、本来ならこの場合の処理も必要となる。
5行目では、見つかった単語のidでGetItemByIdメソッドを呼び出し、ITEM型である単語データの本体を取得する。単語の意味は文字列型のitem.meaningに含まれている。続く6行目では、これを2つめのテキスト・ボックス(textBox2)のTextプロパティに代入している。これによってテキスト・ボックスに単語の意味が表示される。
VS .NETにはインテリセンスと呼ばれる機能が搭載されているため、コードの記述は非常に楽に、そして確実に行うことができる。次の画面は、プログラムの4行目を入力している途中で、インテリセンスが機能している様子を示している。
![]() |
||||||
![]() |
||||||
| インテリセンスが働いている様子 | ||||||
| インテリセンスのおかげでコードの入力は楽になり、リファレンス・マニュアルを参照する手間を省くことができる。 | ||||||
|
例えば、SearchWordメソッドの呼び出し部分では、“icd.”のピリオドまでを入力したところで、この時点で記述可能なICDクラスのメソッドやプロパティを選択するためのポップアップ・メニューが表示される。VS .NETは、変数icdがICDクラスのインスタンスであるということを認識しているわけだ。さらにピリオドに続けて“se”と入力すれば、メニュー内で選択される文字列が動的に切り替わり、目的の部分でTABキーを押せば、その文字が入力される(図中の
)。メソッド名を入力し、開き括弧“(”を入力した時点では、そのメソッドに必要な引数の型なども表示される(図中の
)。また、対応する括弧がない場合など、文法的におかしな部分には、WORDの校正機能のように自動的に波線が表示される。とにかくインテリセンスは一度使い始めるとやめれない、すばらしい機能である。
以下の画面のようにコードをすべて入力し終えたら、プログラムは完成だ。F5キーを押してプログラムを実行してみよう。
![]() |
| すべてのコードを記述したbutton1_Clickメソッド |
| このアプリケーションのコードはこれがすべてである。 |
| INDEX | ||
| [特集]NetDictionaryで始めるWebサービス・プログラミング | ||
| 第2回 Visual Studio .NETで作るWebサービス・クライアント | ||
| 1.ICD Webサービスを試す | ||
| 2.見出し語を検索する | ||
| 3.単語の意味を取得する | ||
| 4.Visual Studio .NETを起動する | ||
| 5.GUIを作成する | ||
| 6.Web参照を追加する | ||
| 7.追加されたWeb参照とプロキス・クラス | ||
| 8.ネームスペースの指定を追加する | ||
| 9.イベント・ハンドラを記述する | ||
| 10.アプリケーションを実行する | ||
| 特集 : NetDictionaryプロジェクト |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|








