C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のMainメソッドでコマンドライン引数を受け取る方法をわかりやすく解説

C#におけるエントリーポイント「Mainメソッド」とは

C#プログラムの実行は、必ずMain()メソッドから始まります。Mainメソッドはプログラムのエントリーポイント(開始地点)であり、次のように宣言します。

static void Main(string[] args)

コマンドライン引数を受け取る仕組み

Mainメソッドのパラメータである文字列配列 args に、コマンドラインから渡された引数が格納されます。

string[] args

たとえば、2つの引数を渡して起動した場合、args には次のような値が自動的に設定されます。

var args = new string[] { "arg1", "arg2" }

このように、外部からプログラムに値を渡したい場合でも、特別な処理を書くことなく args 配列経由で簡単に受け取ることができます。

サンプルコード

実際の動作を確認できるサンプルコードは以下の通りです。

using System;

namespace Demo {
    class HelloWorld {

        // コマンドライン引数を受け取るためのargs
        static void Main(string[] args) {
            Console.WriteLine("Welcome here!");
            Console.ReadKey();
        }
    }
}

この例では、引数の有無にかかわらず「Welcome here!」というメッセージを表示し、キー入力を待って終了します。args.Length を参照すれば、渡された引数の個数を確認することも可能です。

Visual Studioを使わずコマンドラインでコンパイル・実行する手順

Visual StudioのIDEを使用せず、コマンドラインだけでC#プログラムをコンパイルすることもできます。手順は以下の通りです。

  1. テキストエディタを開き、上記のコードを入力します。
  2. ファイル名を helloworld.cs として保存します。
  3. コマンドプロンプトを開き、ファイルを保存したディレクトリへ移動します。
  4. csc helloworld.cs と入力してEnterキーを押すと、コードがコンパイルされます。
  5. コードにエラーがなければ、コマンドプロンプトは次の行に進み、実行ファイル helloworld.exe が生成されます。
  6. helloworld と入力してプログラムを実行します。
  7. 画面に「Welcome here!」という出力が表示されれば成功です。

補足:モダンな.NET環境での実行方法

近年の.NET(.NET Core以降)では、csc コマンドの代わりに dotnet builddotnet run を使うのが一般的です。また、引数付きで実行する場合は dotnet run -- arg1 arg2 のように指定すると、args 配列に値が渡されます。

  1. Tkinterでボタンのcommandに引数を渡す方法を解説

    Tkinterでアプリケーションを開発していると、ボタンをクリックしたときに特定のウィンドウを開いたり、何らかのイベントを実行したりしたい場面がよくあります。ボタンを完全に機能させるためには、commandオプションに関数を渡す仕組みを理解しておくことが重要です。 commandオプションとは commandはButtonウィジェットの属性のひとつで、値として「関数名」を受け取ります。ここに指定された関数が、ボタンが押されたときに実行されるイベントの動作を定義します。 まずは基本となる例として、ウィンドウとボタンを作成し、command属性に関数を渡してイベントを発生させてみましょう。 サンプ

  2. コマンドラインからUbuntuをアップグレードする方法|do-release-upgrade徹底解説

    Ubuntuの「アップデートマネージャー」を使えば、新しいメジャーリリースへのアップグレードは比較的簡単に行えます。GUIのウィザードが手順を順番に案内してくれるため、初心者でも迷わず操作できるでしょう。 しかし、GUIユーティリティを使えない場面もあります。たとえばサーバー環境ではグラフィカルインターフェースにアクセスできないため、コマンドラインでアップグレード作業を行うしかありません。 とはいえ、これだけがコマンドラインを使う理由ではありません。CLIでは処理の進行状況がより詳細に表示されるのが特徴です。多くのコマンドラインツールは実行中に大量のテキストを出力するため、アップグレードの詳細