给Linqpad脚本提供`string[] args`

8

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

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

但是出现了错误

没有重载方法'Main'接受0个参数

编辑:我不想从命令行运行Linqpad(那会很繁琐),我只想以某种方式提供args给主方法(这样我就可以快速测试Main方法)。也许像这样的模拟:

linqpad args


你将如何调用这个方法(从LinqPad)? - Anders Gustafsson
这里有一个实现请求链接,但我认为这个功能会带来非常高的安全风险,而且他们不太愿意走这条路。 - Steve
1
编译为EXE的选项正在计划中,因此到那时命令行参数将会有意义。与此同时,根据您想要实现的目标,您可能会发现调用Console.ReadLine(以及更加灵活的Util.ReadLine)很有用。 - Joe Albahari
Joe,Anders,我已经设计了一个界面,让用户可以在Linqpad内部提供Main方法的参数,而不是通过命令行,即在工具栏中添加文本输入。这样做是安全的,对吧?http://i.stack.imgur.com/IJGH1.png - Colonel Panic
2个回答

11
void Main (string[] args)
{
    #if !CMD
        args = new[] { @"arg1", @"arg2" };
    #endif
    args.Dump();
    ...

当从lprun调用时,CMD变量将被设置,但不会在GUI中设置。参考:https://www.linqpad.net/lprun.aspx - kevinpo

6
为什么不这样做:
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();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接