Не требуется приведение типов при умножении типов 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)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.8 из 5
Похожие ответы