I found out that in C# a+=1 is not equal to a = a+1.
For example, the following code compiles without any error: byte b = 10; b += 5;
while the following code h
Because b += 5 is compiled as if it read b = (byte)(b + 5). The cast takes care of the conversion to the proper type, so there is no error.
b += 5
b = (byte)(b + 5)