错误:CS0266无法隐式转换类型' int'到'字节'。存在显式转换(您是否错过了演员?)

时间:2016-11-01 20:41:58

标签: c#

知道我向我评论的代码投了一个字节,但我仍然有同样的错误

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;
}

我设置格式并不是那么好所以请耐心等待。

1 个答案:

答案 0 :(得分:4)

整个表达必须被铸造:

(byte) (this.PingId - 1);

否则将PingId转换为字节,然后从中减去1,并且将1作为int,将字节提升回​​int。