レイアウトが完成したら、最初に画面表示時の処理を作っていきます。まず演算の列挙体を定義します*7。ソリューション エクスプローラーのCalculatorを右クリックして、「追加」→「新しい項目」を選択します。「新しい項目の追加」ダイアログで「コードファイル」を選択します。名前に「Operator」と入力し(Operator.csになります)、リスト1のように記述します。ここでは、計算処理のどれを行っているか(もしくは何も選択されていない)を表す列挙体を定義しています。本特集では、C#の詳しい文法などには触れず、VS2010の使い方をメインに解説していきます。

namespace Calculator
{
  public enum Operator
  {
    /// <summary> 何も選択されていないことを示す </summary>
    None,
    /// <summary> 足し算を示す </summary>
    Add,
    /// <summary> 引き算を示す </summary>
    Sub,
    /// <summary> 掛け算を示す </summary>
    Multi,
    /// <summary> 割り算を示す </summary>
    Div
  }
}
リスト1●Operator列挙型の定義。加減乗除と処理なしを定義する(Operator.cs)

賢くなったIntelliSenseを活用しよう

 次に、デザイナー上にある「Form1」のタイトルバーをダブルクリックすると、コードの画面が表示されて、Form1_Loadメソッドにカーソルが移動するはずです。ここに、プログラムを起動したときの初期化処理を実装していきます。リスト2のように編集します。

リスト2●Form1クラスのメンバー変数を宣言し、Form1_Loadメソッドで初期化する(Form1.cs)
リスト2●Form1クラスのメンバー変数を宣言し、Form1_Loadメソッドで初期化する(Form1.cs)

 (1)で、各種の状態を保持するためにプライベート変数を定義し、(2)でプライベート変数の値を初期化します。resultは計算結果を保持する変数、isNewは新しい数字を入力するかどうかを判断する変数、operationは計算の種類を保持する変数として定義しました。operationは、リスト1で宣言したOperator型の変数です。(3)ではResultTextBoxの文字を「0」に初期化しています。

図8●Visual Studio 2010の新しいIntelliSenseはメンバー名の途中も検索している
図8●Visual Studio 2010の新しいIntelliSenseはメンバー名の途中も検索している

 Visual Studioでコードを入力する際には、IntelliSense(インテリセンス)というコード補完機能を利用できます。図8は、ResultTextBoxの行を記述するときに、あえて「this.text」と入力してみたところです。textというキーワードを含むメンバーの一覧が表示され、上下矢印キーで選択し、Tabキーで確定できます。

 Visual Studio 2008までのIntelliSenseでは、メンバー名の先頭からフィルタリングを行っていたため、最初の文字がわからないと目的のメンバーを見つけられませんでした。しかし、VS2010のIntelliSenseは、メンバー名の途中からでも検索するようになり、ここではtextという単語を含むものを列挙してくれています。