Looking at this C# code:
byte x = 1; byte y = 2; byte z = x + y; // ERROR: Cannot implicitly convert type \'int\' to \'byte\'
The result of
Addition is not defined for bytes. So they are cast to int for the addition. This true for most math operations and bytes. (note this is how it used to be in older languages, I am assuming that it hold true today).