特集
NetDictionaryで始める
Webサービス・プログラミング

9.イベント・ハンドラを記述する

デジタルアドバンテージ
2001/10/02


 ネームスペースの指定を追加したら、次はイベント・ハンドラであるbutton1_Clickに次のコードを記述する(解説のために各行には行番号をつけている)。今回のアプリケーションに必要なコードはこれですべてだ。

1: private void button1_Click(object sender, System.EventArgs e)
2: {
3:     ICD icd = new ICD();
4:     WORD[] words = icd.SearchWord(textBox1.Text, false);
5:     ITEM item = icd.GetItemById(words[0].id);
6:     textBox2.Text = item.meaning;
7: }
ボタンがクリックされたときに実行されるコード

 コードを見れば分かるが、プロキシ・クラスのおかげで、インターネットの先にある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プロジェクト


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間