我在网上看到有人展示了一些看起来合法的C#代码,可以允许自定义参数通过命令行传递到主方法中。它看起来大致如下:
static void Main(FileInfo input, int maxSize = 9, bool someflag = false)
{
// code
}
这可以在命令行中使用,例如:
$ myApp hello_world.txt --maxSize 10 --someflag
这真的可能吗,还是有人在开玩笑?
我在网上看到有人展示了一些看起来合法的C#代码,可以允许自定义参数通过命令行传递到主方法中。它看起来大致如下:
static void Main(FileInfo input, int maxSize = 9, bool someflag = false)
{
// code
}
$ myApp hello_world.txt --maxSize 10 --someflag
这真的可能吗,还是有人在开玩笑?
您可以使用DragonFruit,这是dotnet CLI的(当前)alpha功能。
将
string[]
参数解释为行为留给开发人员完成。用户是否请求帮助?他们是否传递了无效输入?如果它们不是string
,是否可以将输入转换为所需的类型?这些问题并没有为您解决。
如果您可以声明强类型的
Main
方法会怎样呢?这就是创建实验性应用程序模型“DragonFruit”的问题,它允许您创建具有多个各种类型参数和使用默认值的入口点[...]。
string[]
之外的任何内容。您可以编写自定义代码将其解析为对象,但不能在Main
方法中进行这样的操作。 - gunr2171Main()
的唯一重载吗?虽然在一个正确的Main()
或Main(string[] args)
旁声明它会产生警告 "warning CS0028: 'Program.Main(FileInfo, int, bool)' has the wrong signature to be an entry point." - Lance U. Matthews