大佬们 在这段代码中,运行到 socket.Send(sendBytes);会报错:NullReferenceException: Object reference not set to an instance of an object
这是为什么

我把Send()改成这样 并直接运行就是正确的

感觉是因为socket创建在connection()中 所以在Send()中用不到吗?如果是这样可以怎么优化?
大佬们 在这段代码中,运行到 socket.Send(sendBytes);会报错:NullReferenceException: Object reference not set to an instance of an object
这是为什么

我把Send()改成这样 并直接运行就是正确的

感觉是因为socket创建在connection()中 所以在Send()中用不到吗?如果是这样可以怎么优化?
关注引自免费微信小程序:皆我百晓生
这个问题是由于socket在connection方法内部创建并初始化为null导致的。当您尝试使用socket.Send()时,它将抛出NullReferenceException。
要解决此问题,您可以重写connection方法,确保在访问之前先检查socket是否已初始化。以下是修改后的代码示例:
public void connection()
{
if(socket == null)
throw new InvalidOperationException("Socket is null");
// 连接到服务器
socket.Connect("127.0.0.1", 8888);
}
public void Send()
{
if(socket == null)
throw new InvalidOperationException("Socket is null");
string sendstr = InputField.text;
Debug.Log(sendstr);
byte[] sendBytes = Encoding.Default.GetBytes(sendstr);
Debug.Log("sendBytes " + BitConverter.ToString(sendBytes));
socket.Send(sendBytes);
}
在这个版本中,我们首先检查socket是否为null,然后在发送数据之前都进行了这些检查。这样,当socket未被初始化时,程序将会捕获异常并告诉用户错误的原因。