3
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

5 回答 5

12

引用自此MSDN 页面

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

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

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

于 2013-09-13T03:57:56.127 回答
2

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

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

检查以获取更多信息。

于 2013-09-13T04:09:00.513 回答
1

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

于 2013-09-13T03:58:32.323 回答
1

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

static int Main()
{
    return 0;
}

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

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

于 2013-09-13T04:00:50.730 回答
1

从 C# 7.1 开始,Main还可以返回TaskTask <int>

请参阅文档

于 2021-12-07T12:14:56.983 回答