特集
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メソッド |
このアプリケーションのコードはこれがすべてである。
|
Insider.NET 記事ランキング
本日
月間