プログラムの構造と実行フロー

更新 : 2007 年 11 月

C# アプリケーションを作成するときは、コンソール アプリケーションと Windows フォーム アプリケーションのどちらを作成するかを選択できます。これら 2 つのアプリケーションは、ユーザー インターフェイスの型が異なるだけでなく、実行フローが異なることもあります。

Windows フォーム アプリケーション

グラフィカル ユーザー インターフェイスを持つ通常の Windows ベース アプリケーションの場合、最初のスタートアップ以降のアクションのほとんどは、マウスの移動、メニュー オプションの選択、テキストの入力など、ユーザーによる操作への応答として実行されます。このような操作によってイベントが発生し、イベント ハンドラと呼ばれる、アプリケーション内の特別なメソッドが呼び出されます。Windows ベースのプログラムが実行するほとんどの処理は、イベント ハンドラによって開始されます。イベントが生成されない場合、プログラムは何も実行しません。

COBOL、BASIC、FORTRAN などの手順型プログラミング言語を主に使用してきた方は、イベント ドリブン モデルに慣れる必要があります。手順型プログラミング言語との最も基本的な違いは、イベント ドリブン プログラミングでは、他のソフトウェアやオペレーティング システム自体によって、アプリケーションのイベント ハンドラ メソッドが呼び出されるという点です。どのメソッドが呼び出されるかはわかりません。アプリケーションで処理するイベントを決めることはできますが、それらのイベントが発生する正確な順序を事前に知ることはできません。

通常の Windows ベース アプリケーションでは、アプリケーションの状態を保持するフィールド、配列、およびコレクションは、既定で Form1 という名前が付けられるメイン Form クラスに配置されます。クラスのスコープで、これらのメンバには、同じ Form クラスに実装されているすべてのイベント ハンドラ メソッドがアクセスできます。イベント ハンドラが呼び出されると、アプリケーション データを変更する一定の処理を実行でき、メソッドから制御が戻ると、アプリケーションは待機状態に戻ります。たとえば、フォームに TextBox コントロールと [更新] ボタンがあるとします。ユーザーがボタンをクリックすると、アプリケーションのイベント ハンドラは TextBox 内のテキストを取得し、取得したテキストをクラスのスコープで格納されている他の文字列の一覧に追加します。文字列が追加されると、アプリケーションは待機状態に戻ります。また、他のイベント ハンドラは、ユーザーの入力に呼応して同じ文字列の一覧に対し別の種類の処理を実行します。

独自のカスタム クラスでは、Windows フォームと同じ機構を使用してイベントを送受信できます。詳細については、「デリゲート (C# プログラミング ガイド)」を参照してください。

コンソール アプリケーション

多くのコンソール アプリケーションでは、実行フローは 1 つのステートメントから次のステートメントに進み、プログラムの最後に到達し、アプリケーションが終了するまでフローが継続します。もちろん、常にこのような動作になるとは限りません。コンソール アプリケーションでも、キーボード イベントに応答したり、タイマやネットワーク接続などのオブジェクトから生成されたシステム イベントに応答したりできるからです。簡素なコンソール アプリケーションは、多くの場合、Main メソッドを含む 1 つのクラスだけで構成されていますが、複雑なアプリケーションには、多くのクラスが含まれていることがあります。

詳細情報

C# プログラムの構造を学ぶ最良の方法として、Visual C# Developerの「Visual C# Samples」や他のインターネット サイトで公開されているサンプル コードを検討することをお勧めします。

参照

処理手順

方法 : 新規に Visual C# Express アプリケーションを作成する

概念

C# 言語の概要

Windows フォームのイベントの順序

Windows フォームにおけるマウス イベント