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 && args0 == "-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产品图添加背景

相关推荐
林的快手9 小时前
MySQL
数据库·oracle
MageGojo9 小时前
10 种主题随机诗词:一个 API 解决小程序的诗词内容源
python·小程序·古诗词·api 接入
身如柳絮随风扬9 小时前
MySQL 存储引擎深度解析:InnoDB vs MyISAM vs Memory,行锁实现与索引奥秘
数据库·mysql
cooldream20099 小时前
使用 uv 管理 Python 虚拟环境:现代 Python 开发的高效实践
python·uv·mcp
KaMeidebaby9 小时前
卡梅德生物技术快报|基因测序技术在 46,XY 性发育障碍变异筛查中的流程与数据分析
服务器·前端·数据库·人工智能·算法·数据挖掘·数据分析
zhangfeng11339 小时前
国家超算中心 系统自带模型 和pytorch 和cuda版本
人工智能·pytorch·python
AI周红伟9 小时前
长鑫科技存储之王:存储三强对比:三星、SK海力士 vs 长鑫科技
数据库·人工智能·科技·react.js·架构·langchain
m0_738120729 小时前
渗透测试基础——黑盒测试下的Web漏洞挖掘与利用解析(二)
服务器·前端·python·网络协议·安全·网络安全
灰阳阳10 小时前
MySQL-Innodb-表空间数据组织方式
数据库·mysql·innodb
玫幽倩10 小时前
2025FIC取证决赛wp(手机取证)
python·智能手机·手机·电子取证·计算机取证·手机取证·fic