When it comes to literal integers in C#.
If the literal has no suffix, it has the first of these types in which
its value can be represented: int, uint, long, ulong.
Compiler is smart enough to deduce that in case of byte b = 1;
the literal fits the byte type. But it's not smart enough to figure it out in case of the conditional (ternary) operator ?:
.