无法从main返回值

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 += ""; Send(sock, packet); Receive(sock); return packet; //connectDone.WaitOne(); } 

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

引自此MSDN页面 :

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

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

进一步阅读: Main()返回值

在C#中,main方法必须是voidint

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

检查这一点以获取更多信息。

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

 static int Main() { return 0; } 

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

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

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