C#encoding.ascii.getstring问题

C#encoding.ascii.getstring问题,c#,C#,在下面给出的代码片段中,我在windows应用程序窗体中发现了错误,但同样的代码适用于控制台应用程序。在这方面我是否要考虑呢 任何想法都将不胜感激 Byte[] bReceive = new Byte[1024]; int i = mySocket.Receive(bReceive, bReceive.Length, 0); //Convert Byte to String string sBuffer = Encoding.ASCII.GetString(bReceive); 这在控

在下面给出的代码片段中,我在windows应用程序窗体中发现了错误,但同样的代码适用于控制台应用程序。在这方面我是否要考虑呢

任何想法都将不胜感激

 Byte[] bReceive = new Byte[1024]; 
int i = mySocket.Receive(bReceive, bReceive.Length, 0); 
//Convert Byte to String string 
sBuffer = Encoding.ASCII.GetString(bReceive);
这在控制台应用程序中工作得很好,但我现在正试图在基于表单的应用程序中运行此代码,但我得到一个错误,即GETstring需要一个参数。谁能告诉我正确的方向吗


谢谢

无论您是在控制台还是WinForms应用程序中运行此代码,都应该没有区别。我想你的代码中肯定有错误

根据错误消息猜测,可能是您无意中编写了以下内容:

sBuffer = Encoding.ASCII.GetString();
这会产生以下错误:

No overload for method 'GetString' takes '0' arguments

取决于从套接字接收的数据量

int i = mySocket.Receive(bReceive, bReceive.Length, 0); inti=mySocket.Receive(bReceive,bReceive.Length,0); “GetString”有一个重载

//Convert Byte to String string sBuffer = Encoding.ASCII.GetString(bReceive, 0, i); //将字节转换为字符串 sBuffer=Encoding.ASCII.GetString(bReceive,0,i); 需要注意的是,首先检查
i
的值是否大于1,否则如果
i
为-1,上述“GetString”方法可能会失败

希望这有帮助, 顺致敬意,
Tom.

如果您正在使用基于.NET
Compact Framework的表单应用程序,那么有一种可能性是?如果是,则不支持此方法。你必须使用

Encoding.GetString(字节[],Int32,Int32)
方法


参考资料:

您收到的确切错误消息是什么?请从现在起直到永远停止使用匈牙利符号。这两个应用程序是否使用相同的框架?