測試環境vs2019+.net5.0 請看 :https://cloud.tencent.com/developer/article/1507934
本測試環境vs2022+.net6.0 +window 10
學習C#編程最常見的示例程序是在控制台應用程序中輸出Hello World!
//C#9 .net5.0 using System; namespace DemoMainArgs { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); Console.ReadLine(); } } } //C# 10 .net 6.0 Console.WriteLine("Hello World!"); //系統會自動生成命名空間(項目名稱)和Program 類。args 不用聲明,系統默認agr就是main函數的string[] args參數
- static:是將Main方法聲明為靜態, 是應用程序的入口。
- void:說明main方法不會返回任何內容。
- string[]args:這是用來接收命令行傳入的參數。string[]是聲明args的數據類型,可以存儲字符串數組。
- 可有再多個類中分布main函數,然后再項目屬性=>常規=>啟動對象 要將哪一個類中的main函數設定為入口點
通過cmd.exe程序來啟動上述程序時會彈出命令窗口,你可以在那里輸入一些參數,string[] args 指的就是在命令窗口輸入的參數, 也就是命令行參數。
args是用來接收命令行參數的。它是可選項,不是必須的。
下面通過一個具體的示例程序來說明。
1. 新建控制台程序DemoMainArgs。
2. 編寫代碼。
//C#10 .net6.0 Console.WriteLine("該程序接收多個參數 用空格 來做參數分隔符"); Console.WriteLine($"main函數參數agrs 的長度{args.Length} "); int i = 1; foreach (var s1 in args) { Console.WriteLine($"參數{i++}:{s1}"); } Console.WriteLine(args); Console.ReadKey(); //c# 9.0 .net5.0 using System; namespace ConsoleApp6 { class Program { static void Main(string[] args) { Console.WriteLine("該程序接收多個參數 用空格 來做參數分隔符"); Console.WriteLine($"main函數參數agrs 的長度{args.Length} "); int i = 1; foreach (var s1 in args) { Console.WriteLine($"參數{i++}:{s1}"); } Console.WriteLine(args); Console.ReadKey(); } } }
3. 編譯,生成ConsoleApp6.exe文件。
4、用ILSpy 打開ConsoleApp6.dll 發現 .net 6.0 C#10 編寫的代碼都是在main函數中 ,系統自動生成了program 類。

5、設定哪個類作為函數入口點、如果就一個main函數,那么默認未配置

下面通過3種方式來展示具體效果
方式一 :命令行中啟動程序並輸入參數
應用程序目錄 的地址欄中輸入cmd 回車 ,輸入路徑+DemoMainArgs,空一格,再輸入 a b c d(可以輸入任意多個參數,多個之間用空格分隔)
輸入應用程序名和 參數(可以輸入任意多個參數,多個之間用空格分隔)Enter回車查看結果如下:
方式二:編譯前輸入參數
右鍵點擊【項目】--》【屬性】,彈出配置界面。選擇【調試】--》【命行參數】文本框中輸入任意的參數,多個之間用空格分隔
配置完成后,系統生成Properties\launchSettings.json 文件保存這些配置:

按下F5編譯並運行,直接看到輸出
方式三:通過在程序的快捷方式中增加參數【推薦】
程序編譯后,創建快捷方式程序。右鍵點擊【ConsoleApp6.exe】--》【創建快捷方式】
產生了快捷方式文件,如下:
右鍵點擊【ConsoleApp6.exe 快捷方式】--》【屬性】--》【快捷方式】--》【目標】,在文本框的最后輸入任意參數,
多個之間用空格分開
雙擊【ConsoleApp6.exe 快捷方式】,運行結果如下
總結:第3種方式比較靈活,可以由客戶端(使用者)自由輸入特點范圍內的參數,然后程序根據輸入的參數來判斷執行不同的業務邏輯
