首页 > 编程语言 >在 .NET / C# 中管理命令行参数

在 .NET / C# 中管理命令行参数

时间:2022-09-04 10:58:01浏览次数:90  
标签:解析器 C# 应用程序 添加 参数 命令行 NET 我们

在 .NET / C# 中管理命令行参数

创建控制台应用程序时,我们经常需要处理通过命令行传递的参数。本文介绍了一种使用 命令行解析器 nuget 包。

Photo by 奥斯卡·耶尔迪兹 on 不飞溅

示例应用程序

假设我们有一个从数据库返回订单详细信息的应用程序。
当然,我们不想要每个订单的详细信息。因此,我们想要过滤的能力。所以我们定义了以下参数:

  1. 客户ID
  2. 订购日期
  3. 启用日志记录

让我们实现它。

安装命令行解析器

NuGet: https://www.nuget.org/packages/CommandLineParser
GitHub: https://github.com/commandlineparser/commandline

添加包 命令行解析器 到你的项目。

创建一个参数类

所有有效的参数都必须在一个类中定义。在我们的示例应用程序中,代码可能如下所示:

每栋楼都装饰着 选项 属性,它提供了许多参数,以支持全面的参数配置。
上面使用了以下参数:

  1. 简称
    定义参数名称的一个字符
  2. 长名称
    定义参数名称的字符串
  3. 必需的
    确定是否必须提供值
  4. 默认
    如果未提供值,则为默认值
  5. 帮助文本
    论据的描述

将参数解析为对象

现在我们创建了一个 参数类 ,我们需要添加将命令行参数解析到我们类的实例的代码。

传递的参数 参数 被解析为一个实例 选项 .我们使用这个实例来根据提供的值管理我们的代码。

传递命令行参数

主要代码结构实现。
让我们启动应用程序并传递参数。
使用 cmd,调用 .exe 应用程序文件并添加一些参数。

请注意,我们必须在短参数名称前添加一个“-”,在长参数名称前添加两个。

如果 客户ID 未提供,调用失败。
为什么?请记住,我们设置 必需的 的财产 客户ID 在我们的 选项 班级。

结论

命令行解析器 是管理争论的好工具。它很容易理解和记住。此外,实施过程只需几分钟。

本文仅介绍了一个小示例。该套餐还有更多可供选择的方式。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/12052/46450410

标签:解析器,C#,应用程序,添加,参数,命令行,NET,我们
From: https://www.cnblogs.com/amboke/p/16654509.html

相关文章

  • C++学习笔记-day07
    1、引用......
  • 排序算法整理C++(初赛)
    排序算法整理常见考点将一个乱掉的字符串排回有序(以交换为基本操作)的最少操作,就是冒泡排序。排序算法的稳定性排序算法的时间复杂度排序算法的稳定性稳定性是指排......
  • 关于eclipse(64位)下aptana插件安装报错问题解决
    关于eclipse(64位)下aptana插件安装报错问题解决_z1m2爱的博客-CSDN博客 https://blog.csdn.net/zoumin123456/article/details/48285589最近一直没有写过js,换了新电脑以......
  • 11 个开发者必备的 Chrome 扩展
    11个开发者必备的Chrome扩展这是我的11个GoogleChrome扩展列表,供开发人员轻松工作。GoogleChromeExtensions根据统计计数器,谷歌浏览器是世界上最流行的网络......
  • LogBack配置文件
    使用注意更改文件生成和读取路径<?xmlversion="1.0"encoding="UTF-8"?><configuration><!-- CONSOLE:表示当前日志信息时可以输出控制台的。--><appendername......
  • Java实现Excel导入导出操作详解
    前言本次封装是基于POI的二次开发,最终使用只需要调用一个工具类中的方法,就能满足业务中绝大部门的导入和导出需求。1.功能测试1.1测试准备在做测试前,我们需要將【2......
  • Navicat连接Oracle时报错 “ORA-28547:连接服务器失败,可能是oracle net 管理错误“ 或
    Navicat连接Oracle时报错“ORA-28547:连接服务器失败,可能是oraclenet管理错误“ 或者“ORA-03135:ConnectionLostContact”使用Navicat连接oracle数据库时报ORA-2......
  • Python内置函数-isinstance() 函数详解
    描述isinstance()函数来判断一个对象是否是一个已知的类型,类似type()。isinstance()与type()区别:type()不会认为子类是一种父类类型,不考虑继承关系。is......
  • markdown preview enhanced插件导出为.html文件
      不知不觉,vscode和Markdown文档的配合使用已经用了很久了,但对于没有使用过Markdown的小伙伴,想要给他快速的分享你的Markdown笔记,却是一个问题。解决方案  使用vscod......
  • mocha、chai和supertest单元测试
    mocha单元测试 1.因为有时候在代码中加了新的东西需要反复测试接口或者别人要求重新跑接口非常的繁琐 2.所有我们需要一个帮我们重复测试的东西 那就是mocha ......