问题:如何从一行用户输入中读取多个命令/变量/修饰符?
就像任何 CLI (如命令提示符)一样,用户输入一行并从中读取和分配变量 + 修饰符。
例如转换程序命令:
32 km to cm
然后它写道:
numToConvert = (32)
然后
"km to cm"
点转化率1
conversionRate1 = (0.621371192)
将 32 乘以转换率 (0.621371192)
打印结果。
第二个例子:
shutdown -h
或
shutdown /?
关机被读取为命令
-h 修改它或/? 修改它
命令行上给出的任何内容,在程序名称之后,都会被拆分为空格,并传递给 args 数组。
所以,给定:
class Program
{
static void Main(string[] args)
{
foreach (var a in args)
{
Console.WriteLine(a);
}
}
}
运行"C:>程序.exe将 foo 转换为柱线"将产生以下行
convert
foo
to
bar
为了解析语义,您需要扫描 args 数组并查找修饰符。
如果你有严格的语法,你可以简单地查看预期的位置
var numToConvert = Convert.toint32(args[4])
如果你允许灵活的语法,它会更复杂;你需要开发一系列解析规则来帮助你理解输入。
此外,您可能希望查看专为帮助分析和管理命令行参数而设计的库。命令行解析器库是一个不错的选择。