这是一个奇怪的,我无法找到任何其他问题,所以我假设我是一个骨头。真的很感激一些帮助!
我正在使用C#UdpClient的BeginReceive()/ EndReceive()方法来实现异步读取。我开始阅读:
void startReading() {
udpClient.BeginReceive(new AsynchCallback(asynchRead), null);
}
asynchRead()方法如下所示:
void asynchRead(IAsynchResult result) {
nextData = udpClient.EndReceive(result, ref anyIPEndPoint);
}
,其中
private Byte[] nextData;
和
IPEndPoint andIPEndPoint = new IPEndPoint(IPAddress.Any, 0);
是全球性的。
稍后我尝试使用'nextData',如下所示:
anotherMethod(nextData);
在anotherMethod()中给出了一个未处理的空指针异常。在调试的同时,我可以看到在调用anotherMethod()之前'nextData'中有数据,但在anotherMethod()中,传递的变量为null。
我在这里做了一些明显错误的事吗?
非常感谢。
编辑:
anotherMethod(),部分看起来像这样:
void anotherMethod(Byte[] dataBytes) {
Byte[] data = new Byte[dataBytes.Length - 4]; <- this is where exception occurs
...
}