【问题标题】:Give `string[] args` to Linqpad script将 `string[] args` 提供给 Linqpad 脚本
【发布时间】:2012-09-21 08:50:10
【问题描述】:

如何测试我的 Main 方法如何处理 Linqpad 中的命令行参数?我试过了

void Main(string[] args)
{
    args.Dump()
}

但它出错了

方法 'Main' 没有重载需要 0 个参数

编辑:我不想从命令行运行 Linqpad(那会很乏味),我只想以某种方式向 main 方法提供 args(这样我就可以快速测试 Main 方法)。也许就像这个模型:

【问题讨论】:

  • 你打算如何调用这个方法(从 LinqPad)?
  • 有这个实现请求here,但是我认为这个功能存在非常高的安全风险,他们不喜欢走这条路线。
  • 编译到 EXE 选项正在管道中,因此此时命令行参数将有意义。同时,根据您要实现的目标,您可能会发现调用 Console.ReadLine(和 Util.ReadLine 以获得更大的灵活性)很有用。
  • Joe,Anders,我已经模拟了一个界面,它允许用户从 Linqpad 内部而不是命令行向 Main 方法提供参数,即。向工具栏添加文本输入。这将是安全的,对吧? i.stack.imgur.com/IJGH1.png

标签: c# .net linqpad


【解决方案1】:
void Main (string[] args)
{
    #if !CMD
        args = new[] { @"arg1", @"arg2" };
    #endif
    args.Dump();
    ...

【讨论】:

  • 这很好用,应该是公认的答案。
【解决方案2】:

你为什么不这样做:

void Main()
{
    var args = new string[] { "arg_one", "arg_two" };
    subMain(args);
}

// Define other methods and classes here
public void subMain(string[] args){
    args.Dump();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 2018-09-03
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多