【问题标题】:Command Line Parser Library: Parse a hex string into UInt32命令行解析器库:将十六进制字符串解析为 UInt32
【发布时间】:2015-11-19 11:57:35
【问题描述】:

我有一个需要接受参数的控制台应用程序。该应用使用Command Line Parser Library 解析参数。

应用程序需要能够接受十六进制参数,并将它们转换为无符号整数。

例如,如果这是 Option 类

public class CommandLineOptions
{
   [Option('l', "crcLocation", Required = false, HelpText = "Address where the CRC will be inserted.  Must be outside of the application image")]
   public UInt32 CrcLocation { get; set; }
}

那么应用程序应该能够启动

app.exe -l 0x0000000F

因此将CrcLocation 设置为15

有没有办法让命令行解析器库从十六进制字符串转换为整数,或者应用程序是否需要手动执行此操作?

【问题讨论】:

    标签: c# parsing command-line-arguments command-line-parser


    【解决方案1】:

    从库的源代码来看,它内部使用方法Convert.ChangeType 来执行转换,不幸的是它不支持十六进制数字。见:https://github.com/gsscoder/commandline/blob/master/src/CommandLine/Core/TypeConverter.cs#L66

    最好的办法是公开一个字符串并使用带有正确 NumberStyles 标志的 UInt32.TryParse 自己执行转换。

    【讨论】:

      猜你喜欢
      • 2020-03-11
      • 2015-08-02
      • 1970-01-01
      • 2017-05-29
      • 2015-11-23
      • 2016-07-17
      • 2019-06-09
      • 2011-04-08
      • 2016-12-15
      相关资源
      最近更新 更多