无法从main返回值

时间:2013-09-13 03:54:49

标签: c#

static string Main(string[] args)
{
    //IPAddress ipAddress = System.Net.IPAddress.Loopback;
    IPAddress ipAddress = IPAddress.Parse("192.168.0.100");
    IPEndPoint localEndPoint = new IPEndPoint(ipAddress, 1515);
    Socket sock = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    Connect(localEndPoint, sock);
    string packet;
    packet = Console.ReadLine();
    packet += "<EOF>";
    Send(sock, packet);
    Receive(sock);
    return packet;
    //connectDone.WaitOne();
}

这是我的客户端邮件部分,当我尝试从我的服务器返回我的字符串响应(数据包变量)时,编译器错误是Program '...\clie.exe' does not contain a static 'Main' method suitable for an entry point

4 个答案:

答案 0 :(得分:12)

引用此MSDN page

  

Main只能返回int或void,并且有一个可选的字符串数组参数来表示命令行参数:

main()的返回值是应用程序的退出状态。因此,它必须是intvoid。如果您的目标是打印最终结果,则需要使用Console.WriteLine()

进一步阅读:Main() Return Values

答案 1 :(得分:1)

在C#中,主要方法必须是 void int

您修改了main以返回一个字符串,因此该方法就像类中的任何其他方法一样...并且您的程序没有真正的主方法

检查this以获取更多信息。

答案 2 :(得分:0)

唯一的选择是static void Main(string[] args)static int (string[] args)返回字符串不是选项。

答案 3 :(得分:0)

控制台应用程序可以使用以下语法返回可选的整数错误级别值:

static int Main()
{
    return 0;
}

要返回字符串值,但必须使用控制台输出或其他一些流 - 文件等 - 来传输数据。控制台重定向有效,因此您可以将控制台应用程序的输出传递到链中下一个应用程序的输入,或者传输到文件中供以后使用。

尝试使用Console.Write()Console.WriteLine()方法,最初将输出捕获到文件中以检查格式,然后使用管道将其输入到需要使用它的程序的输入中。 / p>