C#怎么创建控制台应用 C#如何编写Console控制台程序处理命令行参数和输入输出【入门】

张开发
2026/4/21 1:19:13 15 分钟阅读

分享文章

C#怎么创建控制台应用 C#如何编写Console控制台程序处理命令行参数和输入输出【入门】
dotnet new console 一行生成默认顶层语句风格的控制台项目支持 --use-program-main 回退传统结构参数解析推荐 System.CommandLine中文输出需显式设 Console.OutputEncoding UTF8。用 dotnet new console 创建最简控制台项目新建控制台应用不用手动建文件夹、改 csproj 或配 SDK 版本dotnet new console 一行命令就能生成可直接运行的骨架。它默认使用最新稳定版 .NET SDK如 .NET 8生成的 Program.cs 是顶层语句风格没有显式 Main 方法——这对入门友好但容易让人忽略入口逻辑其实还在那儿。如果需要兼容旧项目结构比如要重载 Main 方法或处理返回码加 --use-program-main 参数dotnet new console --use-program-main别手动删 obj/ 或 bin/ 目录来“清理”用 dotnet clean 更安全否则可能触发 MSBuild 缓存异常生成后直接 dotnet run 就能输出 “Hello, World!”不需要先 dotnet build ——但发布到其他机器时必须用 dotnet publish读取命令行参数别只用 args 数组硬写判断string[] args 是 Main 方法的默认参数但它只是原始字符串切片没做解析。直接写 if (args.Length 1 args[0] -f) 这类逻辑遇到空格、引号、长选项如 --output-path就崩。简单场景用 System.Environment.GetCommandLineArgs()它比 args 多包含程序名索引从 0 开始注意别越界中等复杂度推荐 Microsoft.Extensions.CommandLineUtils已归档或更现代的 System.CommandLine 包NuGet 安装 System.CommandLine v2.0避免把参数解析逻辑塞进 Main提取成独立方法或类方便单元测试——比如验证 -v 是否被识别为布尔开关而不是靠 args.Contains(-v)Console.ReadLine() 和 Console.ReadKey() 的行为差异两者都读用户输入但触发时机和返回值完全不同ReadLine() 等回车才返回整行字符串含换行符前内容ReadKey() 按下任意键立刻返回且默认不显示字符适合密码输入或快捷键。 Mokker AI AI产品图添加背景

更多文章