почему байт + = 1 компилируется, а байт = байт + 1 нет?

Если у меня есть байтовая переменная: byte b = 0;

почему работает следующее:

   b++;
   b += 1; // compiles

... но это не так ?

   b = b + 1; // compile error

Компилятор понимает первый как байт , а второй как int ?

[EDIT]

Я знаю кастинг, но хочу обратить ваше внимание на b ++, b + = 1 и b = b + 1

Я думаю, что они равны, поэтому почему компилятор от них отличается? в чем разница между

  b += 1 and b = b + 1 ?
21
задан 11 February 2011 в 13:18
поделиться