質問: C#のMain()関数の`(string[] args)`とはどのような意味なのでしょうか? C言語等でも`int main(void){}`(void)などありますが、 意味を教えてくれますでしょうか? ``` 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(); } } ```
回答: windowsができる前のPCのOSはMSDOSというOSでした。 このOSは今のマウス操作で行うGUIではなく、コマンド入力でプログラムを起動していました。 現在のwindowsでもこの機能は残っており、スタートメニューを右クリックし、Windows PowerShellを 選択すればコマンド入力状態になります。 コマンドはプログラム名 引数1 引数2...のようなフォーマットで入力します。 例えばファイルのリネームの場合、rename 対象のファイル名 新しいファイル名 のように入力します。 この引数を受け取るための機能がstring[] argsになります。 現在のGUIのプログラムではあまり必要では無いかもしれませんが、状況により 起動時に動作を変えたい場合などに使えたりします。 GUIのプログラムでマウスクリックで使用する場合は、プログラムのショートカットを作成し、 引数を設定することができます。 複数のショートカットを作成し、引数を変えることにより、起動時に動作を変えることができます。