C# 为什么在本例中使用return-1?

C# 为什么在本例中使用return-1?,c#,guid,C#,Guid,有人能告诉我为什么这里使用了return-1,以及它的含义吗?主方法可以返回void: static int Main(string[] args) { Guid obj = Guid.NewGuid(); Console.WriteLine("New Guid is " + obj.ToString()); Console.ReadLine(); return -1;

有人能告诉我为什么这里使用了
return-1
,以及它的含义吗?

方法可以返回
void

 static int Main(string[] args)
        {
            Guid obj = Guid.NewGuid();

            Console.WriteLine("New Guid is " + obj.ToString());
            Console.ReadLine();
            return -1;
        }
它还可以返回一个
int

static void Main()
{
    //...
}
如果未使用
Main
中的返回值,则返回void将使代码稍微简单。
但是,返回
整数将使程序能够将状态信息传递给调用可执行文件的其他程序或脚本。

阅读更多信息。

我当然无法告诉您选择-1的原因,但一般来说,返回值将发送到调用应用程序。这叫做退出密码。现在,它们通常不在应用程序中使用,因为它们实际上没有任何用处,但在今天——事实上,在这种情况下——它们被用来表示控制台应用程序的成功或失败(或其他)

例如,我可能编写一个进行网络调用的程序,如果调用成功,则返回
0
,如果没有安装NIC,则返回
12
。这样,如果其他程序正在使用我的EXE,它就可以理解调用是否成功,而无需不可靠地解析某些输出流


大多数现代应用程序都有
static void Main
功能,因为此工作流在大多数情况下对最终用户没有用处。我们现在使用GUI来显示“执行过程中出现了错误”。这并不是说它们在某些情况下没有用处,显然,原因与以前完全相同,但如果您(比如)双击图标启动程序,结果通常不会被捕获,因此,在大多数情况下,它会被丢弃。

main的返回值是程序的退出代码。呼叫方可以检查它并对其作出反应。在Windows上,常见的模式是,如果程序成功,则使用0,错误情况下使用不同的正整数。

因为您可以检查返回值,如果您使用另一个应用程序(批处理、powershell等)启动此程序,则使用该返回值。这是一个很好的问题(不是从很好的问题意义上讲,而是从谁知道的意义上讲)。通常,非零返回值意味着任何命令都失败,因此作者可能只是在玩弄。或者他们知道-1意味着什么。或者,这是他们最喜欢的号码。或者,编译器抛出了一个错误,这是他们让它“闭嘴并编译”的方式。在这个例子中,它没有任何意义。但通常它会说这个过程是成功完成了还是出现了一些错误。它是进程的退出代码<代码>0表示成功,非零表示错误。我不知道,我现在觉得自己很愚蠢+1.
static int Main()
{
    //... 
    return 0;
}