初心者のためのC#プログラミング本格入門43 - プロパティに値を追加できるようにしよう
41回目にて触れましたが、現在作っているAnalyzerクラスのvaluesフィールドに値を追加できません。これでは不便なので、Analyzerクラスにプログラムを追加して、valuesフィールドに値を追加できるようにします。
「フィールドに値を追加する」と言っても新しい文法は必要ありません。メソッドを新しく追加するだけです。値を追加するAddValuesメソッドを定義します。
public void AnalyzeExpression( string inputValue )
{
//数値を取り出す
string tmp = inputValue;
AddValues( tmp );
//符号を取り出す
System.Tuple<bool, char, string> signInfo = GetSign( tmp );
this.sign = signInfo.Item2;
//処理が成功しているか否かを記録
this.success = this.count != 0 & signInfo.Item1 == true;
}
public void AddValues( string inputValues )
{
bool loopFlag = true;
string tmp = inputValues;
do
{
System.Tuple<bool, int, string> value = TryValue( tmp );
loopFlag = value.Item1;
if ( loopFlag == true )
{
++this.count;
int index = this.count - 1;
this.values[ index ] = value.Item2;
tmp = value.Item3;
}
} while ( loopFlag == true );
}
AddValuesメソッドは簡単です。AnalyzeExpressionメソッドから一部のコードを取り出して作りました。このクラスの使い方も簡単です。
class Program
{
static void Main()
{
Analyzer obj = new Analyzer();
obj.AnalyzeExpression("+ 1 2 3");
obj.AddValues( " 4 5 6 " );
for ( int i = 0; i < obj.Count; i++ )
{
System.Console.Write( obj.Values[ i ] + " " );
}
System.Console.WriteLine();
}
}
お手軽にvaluesフィールドに値を追加できる事が分かると思います。この様な事が可能なのは、オブジェクト指向プログラミングだからです。オブジェクト指向プログラミングでなければインスタンスが作れず、各種変数を注意して操作しなくてはなりません。クラスが各種変数をフィールドとして持っているので、細かいプログラムが減るのです。
もちろん、オブジェクト指向プログラミングの恩恵は、これだけにはとどまりません。続く...