byte num1 = 5;
byte num2 = 6;
byte res = num1 + num2;
//Adding bytes asks for a explicit cast to int - "Cannot Implicitly Convert 'int' to 'byte'
This can be justified by assuming the case that what if the arithmetic operation causes an overflow. So if this is going to be the case then what for int?
int num1 = 2;
int num2 = 4;
int res = num1 + num2;
// This works, but when we take the previous assumption to consideration here
// here int may also lead to overflow right
So this should also throw a cast error right, it should ask for long and the chain continues right?
There already another stackoverflow question similar to this but it is not answering this question. byte + byte = int... why?
Just because it "can be justified" that way, doesn't mean that that is the reason.
Eric Lippert, who would know, was clear about this in a comment on the question you linked:
The various musings below are a reasonable approximation of the design considerations. More generally: I don't think of bytes as "numbers"; I think of them as patterns of bits that could be interpreted as numbers, or characters, or colors or whatever. If you're going to be doing math on them and treating them as numbers, then it makes sense to move the result into a data type that is more commonly interpreted as a number.