初心者のためのC#プログラミング本格入門41 - コンストラクタでフィールドの値を初期化しよう
突然ですが、今まで作成してきたAnalyzerクラスのAnalyzeExpressionメソッドには問題があります。それは、メソッドを実行する度にフィールドの値が初期化されてしまう問題です。メソッドを実行するたびにフィールドの値が初期化されてしまうと、新しい値が追加できるように出来ません。今のところ、式が追加できるプログラムを想定していませんが、値が追加できると大変便利です。そこで、AnalyzeExpressionメソッドに値が追加できるよう徐々に改良します。
メソッドを実行する度にフィールドの値が初期化されてしまう問題は、インスタンス生成時にフィールドの値を初期化するようにすれば解決できます。それを実現するには、C#のコンストラクタという文法を使用します。
コンストラクタの書き方は簡単です。早速、サンプルプログラムにコンストラクタを追加してみよう。
//戻り値がないクラス名と同じメソッドを用意するだけ
public Analyzer()
{
this.success = false;
this.sign = ' ';
this.values = new int[ 100 ];
this.count = 0;
}
コンストラクタの文法は非常に簡単です。「戻り値の型を定義せず、型名と同じメソッドを用意する」と覚えれば、直ぐにコンストラクタの文法を覚えられます。コンストラクタの意味は少し難しいので、ひとまず書き方だけ覚えましょう。コンストラクタの意味は、他のオブジェクト指向プログラミングに関する文法と同じく、他の文法を理解してはじめて見えてきます。焦らずじっくり学びましょう。