知道我向我评论的代码投了一个字节,但我仍然有同样的错误
public override bool StartPing(string ip)
{
base.Init();
try
{
this.sock.ReceiveTimeout = 5000;
this.sock.Connect(ip, 5055);
this.PingBytes[this.PingBytes.Length - 1] = this.PingId;
this.sock.Send(this.PingBytes);
//this.PingBytes[this.PingBytes.Length - 1] = (byte)this.PingId - 1;
}
catch (Exception value)
{
this.sock = null;
Console.WriteLine(value);
}
return false;
}
我设置格式并不是那么好所以请耐心等待。
答案 0 :(得分:4)
整个表达必须被铸造:
(byte) (this.PingId - 1);
否则将PingId
转换为字节,然后从中减去1,并且将1作为int,将字节提升回int。