C#のstatic Main()の引数の意味が知りたい。


C#のMain()関数の`(string[] args)`とはどのような意味なのでしょうか？  
C言語等でも`int main(void){}`(void)などありますが、  
意味を教えてくれますでしょうか？

[code]

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    class Program
    {
    
        static void Main(string[] args)
        {
    
    
            Console.ReadKey();
        }
    }
    
[/code]




マニュアルを読みましょう。  
<https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/main-and-
command-args/>  
あるいは Visual Studio のインストールされているディレクトリ中の仕様書

[c#](/questions/tagged/c%23 "'c#' のタグが付いた質問を表示") の `Main` は `Main(void)` ないしは
`Main(string[] args)`
のどちらかを選ぶことができて、後者の場合「コマンドライン引数」を受け取ることができます。前者の場合はコマンドライン引数が指定されていても受け取れません。

[code]

    C>myprog foo bar baz
    
[/code]

ここでは `myprog.exe` をコマンドライン引数付きで起動していますが、このとき  
\- `args[0]` には `foo`  
\- `args[1]` には `bar`  
\- `args[2]` には `baz`  
が格納されます。（仮引数指定なしの `Main()` では受け取れません）

[c](/questions/tagged/c "'c' のタグが付いた質問を表示") の場合は `argv[0]` にはプログラム名が入りますが
[c#](/questions/tagged/c%23 "'c#' のタグが付いた質問を表示") の場合はプログラム名は `args`
に入っていませんので要注意。 (`System.Environment.GetCommandLineArgs()[0]` とかを使う必要がある)

GUI プログラムであってもエクスプローラー上の EXE
アイコンにデータファイルをドラッグドロップする場合などにコマンドライン引数が使われるので、今でも使う機会は結構あります。




マニュアルを読みましょう。  
<https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/main-and-
command-args/>  
あるいは Visual Studio のインストールされているディレクトリ中の仕様書

[c#](/questions/tagged/c%23 "'c#' のタグが付いた質問を表示") の `Main` は `Main(void)` ないしは
`Main(string[] args)`
のどちらかを選ぶことができて、後者の場合「コマンドライン引数」を受け取ることができます。前者の場合はコマンドライン引数が指定されていても受け取れません。

[code]

    C>myprog foo bar baz
    
[/code]

ここでは `myprog.exe` をコマンドライン引数付きで起動していますが、このとき  
\- `args[0]` には `foo`  
\- `args[1]` には `bar`  
\- `args[2]` には `baz`  
が格納されます。（仮引数指定なしの `Main()` では受け取れません）

[c](/questions/tagged/c "'c' のタグが付いた質問を表示") の場合は `argv[0]` にはプログラム名が入りますが
[c#](/questions/tagged/c%23 "'c#' のタグが付いた質問を表示") の場合はプログラム名は `args`
に入っていませんので要注意。 (`System.Environment.GetCommandLineArgs()[0]` とかを使う必要がある)

GUI プログラムであってもエクスプローラー上の EXE
アイコンにデータファイルをドラッグドロップする場合などにコマンドライン引数が使われるので、今でも使う機会は結構あります。

