.NET Console アプリケーション Hello World

.NET

これまでデスクトップアプリケーションとして、Windows フォームとWPFでHello Worldアプリケーションを作成しました。
次はデスクトップアプリケーションというよりは、ちょっとしたバッチプログラムやコマンドを作成できるコンソールアプリケーションでHello Worldアプリケーションを作成したいと思います。
最後に実行するとわかりますが、グラフィカルなUIではなく、コマンドプロンプトのようなウィンドウが表示されます。

.NET Console アプリケーション プロジェクト作成(追加)

テンプレート選択

下記でWPFアプリケーションを追加したHello World用のソリューションを開きます。

ソリューションを右クリックし、追加-新しいプロジェクトを選択します。
新しいプロジェクトの追加画面が表示されますので、コンソールアプリ(C#)を選択して次へをクリックします。

プロジェクト構成画面でプロジェクト名に「HelloConsoleApp」と入力して次へをクリックします。

追加情報画面でフレームワークに「.NET 8.0」を選択します。
「最上位レベルのステートメントをを使用しない」のチェックはOFFのまま作成ボタンをクリックします。「最上位レベルのステートメントをを使用しない」は後程詳細を記載します。

下記の通り、ソリューションにコンソールアプリケーションのプロジェクトが追加されて、ソースコードが表示されます。

プロジェクト構成ファイル

.NET コンソールアプリケーションのプロジェクトを構成するファイルについて説明します。

C#プロジェクトファイル

ソリューションエクスプローラーではHelloConsoleAppがプロジェクトになります。右クリック-プロパティからプロジェクトの設定も行うことができます。
他と同様にエクスプローラー上では、拡張子が「csproj」のファイルがプロジェクトファイルになります。

エントリポイントファイル

プロジェクト内にファイルが一つしかありませんので、Program.csがエントリポイントポイントファイルになります。
ここに処理を書くことで簡単なコマンド用の処理や、バッチ処理を作ることができます。
プロジェクトを作成した段階で、すでにHello Worldをコマンドプロンプトに表示するようになっています。さらに明示的にメソッドがありませんが、argsという変数でこれまで通りプログラムに渡された引数を取得することもできます。


これまでは、Program.csにMainメソッドが存在しましたが、最新のバージョンでコンソールアプリケーションを作成すると、Mainメソッドは存在しません。Mainメソッドは省略されて、Mainメソッドの内部に記載するロジックのみを記載できるようになっています。これを最上位ステートメントと呼んでいるようで、従来のMainメソッドが存在するプロジェクトも作成することができます。
下記でその方法を説明します。

Program.csで最上位ステートメントを使用しない

少し前のプロジェクト作成のダイアログで出てきた「最上位レベルのステートメントを使用しない」にチェックをつけてプロジェクトを作成することで、これまで通りMainメソッドが存在するProgram.csファイルを生成することができます。

ここにチェックをつけて、「HelloConsoleAppWithMain」というプロジェクト名でプロジェクトを追加した結果が下記になります。

最上位ステートメントについては、下記が参考になります。

Hello World表示

.NET コンソールアプリケーション実行

プロジェクトを作成した状態で実行すると下記のようにコマンドプロンプトが起動して、プロンプト上にHello Worldと表示されます。

プロントに記載の通りに設定を変更すると、処理が終了するとコンソールを閉じることも可能です。

ユーザーから入力値を使う

これだけだと面白くないので、少しソースコードを修正します。
プロント上で入力した値を使用して、プログラムを動かすようしてみたいと思います。
まずConsole.ReadLin()メソッドで、コマンドプロンプト上で文字が入力されてEnterキーが押下されるのを待ちます。
入力された値が戻り値で取得できますので、入力さえれた値を「〇が入力されたました」という文字列でコンソールに出力しています。

// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");

string? inputKeys = Console.ReadLine();
if (!string.IsNullOrEmpty(inputKeys))
{
    Console.WriteLine($"{inputKeys} が入力されました。");
}

プログラムを実行すると、まず入力待ち状態になります。何も表示されず何をしたら良いかわからないので、実際は「〇の値を入力してください。」などユーザーに案内をだしてから入力待ち状態にします。今回は何も案内メッセージは表示していませんので、Hello Worldの後ですぐに待ち状態になっています。

続けてTESTと入力してEnterキーを押下します。

「入力された値」が入力されました。という文字列をコンソールに出力するようにソースコードを記載しましたので、「TESTが入力されました。」と表示されます。

簡単ですが、.NET Consoleアプリケーションは、このように簡単なバッチプログラムを作成することができます。
アプリケーションに引数を渡して挙動を変えたりすることもできますし、設定を持たせて設定に従って動作を変えて、運用環境に適した条件でプログラムを動かすようにしたりすることで、複数の環境で使えるプログラムを作成することも可能です。
この辺りも徐々に紹介していければと思います。

コメント

タイトルとURLをコピーしました