メインプログラムのコード
続けて、入力された引数をOptionsクラスに展開して計算をするコードを見てみましょう。
メインプログラム(Programクラス)
using System;
using CommandLine;
namespace ConsoleSample
{
class Program
{
//アプリケーションの開始場所
static void Main(string[] args)
{
//(1)コマンドラインパーサーの初期化
CommandLineParserSettings setting = new CommandLineParserSettings();
setting.HelpWriter = Console.Error;
ICommandLineParser parser = new CommandLineParser(setting);
//(2)オプション用クラスに引数を展開
Options options = new Options();
if (!parser.ParseArguments(args, options))
{
//パラメータに問題がある場合は、失敗ステータスで終了
Environment.Exit(1);
}
//(3)Optionsクラスの引数を使用
Console.WriteLine("引数X: {0}", options.X);
Console.WriteLine("引数Y: {0}", options.Y);
Console.WriteLine("説明: {0}", options.Description);
//指定された演算子にて計算(ループ)
foreach (string calcOperator in options.Operators)
{
string msg = "";
switch(calcOperator)
{
case "+":
msg = string.Format("足し算の結果:{0}", options.X + options.Y);
break;
case "-":
msg = string.Format("引き算の結果:{0}", options.X - options.Y);
break;
case "*":
msg = string.Format("掛け算の結果:{0}", options.X * options.Y);
break;
case "/":
msg = string.Format("割り算の結果:{0}", options.X / options.Y);
break;
}
Console.WriteLine(msg);
}
//成功ステータスで終了
Environment.Exit(0);
}
}
}
コンソールアプリケーションを起動するとMainメソッドが呼び出されます。入力された引数はstring配列のargs変数にセットされています。
(1)コマンドラインパーサーの初期化
まずパーサ本体であるCommandLineParserクラスを用意します。引数のエラー時にヘルプを表示するためにCommandLineParserSettingsクラスにも設定をしています。
(2)オプション用クラスに引数を展開
次にParseArgumentsメソッドを呼びだします。このメソッドはargs変数の値をOptionsクラスに展開します。詰め替えに成功すると戻り値はTrueとなりますが、詰め替えに失敗(未定義、型の相違、必須チェック)すると戻り値はFalseとなります。
(3)Optionsクラスの引数を使用
既に引数はOptionsクラスに移し替えられています。そのためOptionsクラスのフィールドにアクセスすれば値を取得できます。このプログラムでは、各フィールドの値をコンソールに表示した後、Operatorsフィールドの演算子を使って計算を行っています。
最後に
このように、Command Line Parser Libraryを使うと簡単にコンソールアプリケーションを作ることができました。このライブラリに興味をもたれた方は、ぜひダウンロードして試してみてはいかがでしょうか。