Quel est le problème avec cette expression? Impossible de convertir implicitement le type 'int' en 'byte'

J'obtiens l'erreur "Impossible de convertir implicitement le type 'int' à 'octet'. Une conversion explicite existe (vous manque un plâtre?)". Ne pas byte + byte = byte? Aussi je remarque que lorsque je supprime les +rgb.Green il fonctionne

//rgb.Red, rgb.Green, rgb.Blue are byte types
//h, delta are double
rgb.Red = Convert.ToByte(Math.Round((h - 4) * delta)) + rgb.Green;

public struct RGBColor
{
    public byte Red { get; set; }
    public byte Green { get; set; }
    public byte Blue { get; set; }
}

source d'informationauteur Jiew Meng