【发布时间】:2020-12-16 17:41:14
【问题描述】:
我在网上的某个地方看到有人展示了似乎是有效的 C# 代码。它允许主方法中的自定义参数作为命令行参数传递。它看起来像这样:
static void Main(FileInfo input, int maxSize = 9, bool someflag = false)
{
// code
}
这可以像这样在命令行中使用:
$ myApp hello_world.txt --maxSize 10 --someflag
这真的可能吗,还是有人在拉我的腿?
【问题讨论】:
-
c# 运行时不知道如何将自定义命令行参数映射到
string[]以外的任何内容。您可以编写自定义代码将其解析为对象,但不能在Main方法上。 -
嗯,我以为这是 C# 9 中的一个新功能或其他什么,从那家伙谈论它的方式来看
-
你有这个例子的来源吗?例如。也许他们正在使用某种自定义构建步骤将程序集重写为将普通 Main 转换为 this?
-
你确定这是
Main()的唯一重载吗?虽然,在正确的Main()或Main(string[] args)旁边声明会产生警告“警告 CS0028: 'Program.Main(FileInfo, int, bool)' 有错误的签名作为入口点。” -
我添加了别人发给我的截图
标签: c# .net .net-core command-line-arguments main