Не требуется приведение типов при умножении типов Byte - C#
Формулировка задачи:
Читал тут книгу(Г. Шилдт, "Полный справочник по C#"), и нашел такое (ст. 77)
Поскольку при умножении, например, 2 чисел типа byte, результат будет приведен к int, то надо вручну привести тип, и там такой пример
А тепер вопрос
Почему так?
byte b = 10; b = (byte) (b*b);//ручное приведение типа от результата int к byte
byte b = 10; b *= b;//никакого приведения типа не требуеться, компилиться и без него, и результат акой же, как и у (byte) (b*b), т.е. 100
Решение задачи: «Не требуется приведение типов при умножении типов Byte»
textual
Листинг программы
IL_0006: ldstr "0" IL_000b: call void [mscorlib]System.Console::WriteLine(string) IL_0010: nop IL_0011: ldloc.0 IL_0012: ldloc.0 IL_0013: mul IL_0014: conv.u1 IL_0015: stloc.0 IL_0016: ldstr "1" IL_001b: call void [mscorlib]System.Console::WriteLine(string) IL_0020: nop IL_0021: ldloc.0 IL_0022: ldloc.0 IL_0023: mul IL_0024: conv.u1 IL_0025: stloc.0 IL_0026: ldstr "." IL_002b: call void [mscorlib]System.Console::WriteLine(string)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д