Почему нельзя сложить в C# byte + byte?

307
04 октября 2017, 06:42

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

byte a = 2;
byte b = a + 2; // ошибка
Answer 1

Дело в том, что операции с байтами возвращают в результате int. Это не совсем очевидно на первый взгляд, но имеет смысл. Дело в том, что byte - довольно маленькая величина (от 0 до 255), и во многих случаях в результате арифметических операций с двумя байтовыми переменными, возникает переполнение, благодаря чему результат не поместился бы в переменную типа byte. Это явно не очень ожидаемое поведение (например при сложении 200 и 60 получилось бы не 260, ка можно было бы ожидать, а 4), поэтому было решено, что byte + byte = int

READ ALSO
Работа с usb устройствами

Работа с usb устройствами

Есть примерно 10 USB устройств подключенных через USB-хабДля работы с устройствами есть библиотека производителя

289
Keep alive of TCP connection

Keep alive of TCP connection

Добрый день

246
Вопрос по С# Перелистывание графика

Вопрос по С# Перелистывание графика

Всем приветВопрос возможно глупый, но я новичок в с#

275
JavaScript SDK vk - ограничение запросов в секунду

JavaScript SDK vk - ограничение запросов в секунду

У VK API есть ограничение - 3 запроса в секундуКак используя javascript sdk, ограничить запросы до трех в секунду?

249