C#控制台应用程序可以接收空参数吗?

Evd*_*afa 4 c# command-line

我在用C#编写的命令行应用程序上进行sanitaion.我想知道是否需要对传入的string[] args数组执行空检查?例如:

static int Main(string[] args)
{         
    if(args != null) { // is this needed?

    }
}
Run Code Online (Sandbox Code Playgroud)

请注意我发现了类似的关于Java的问题,但无法找到任何与C#(通常是.NET)中的命令行参数有关的内容.

另请注意,我确实尝试不向我的命令行应用程序传递任何参数,并且从未设法使args数组对象为null.我也尝试使用Environment.GetCommandLineArgs() 实用程序函数访问命令行参数,并且也从不为null.

我也阅读了MS编写的这本指南,并没有看到任何明确的保证args数组永远不会为null.

编辑:简化我的例子.

Mat*_*son 7

C#标准在3.1应用程序启动中解决了这个问题:

入口点可以可选地具有一个形式参数.参数可以具有任何名称,但参数的类型必须是string [].如果存在形式参数,则执行环境将创建并传递一个string []参数,该参数包含在启动应用程序时指定的命令行参数.string []参数永远不为null,但如果未指定命令行参数,则其长度可以为零.

(我的粗体)

所以答案是:不,控制台应用程序Main()永远不会收到空args[]参数.