Убедитесь, что число указано правильно в .NET.

StackOverflow https://stackoverflow.com/questions/907344

  •  05-09-2019
  •  | 
  •  

Вопрос

Я знаю, что могу присвоить значение конкретно веществу с плавающей запятой, выполнив

float y = 4.5f;

Я хочу сделать то же самое, только в виде байта.Как мне это сделать?Я проверил документацию MSDN и не нашел ничего, связанного с этим.И еще, как это называется?

Спасибо,

[Редактировать]

Для ясности код, который я использую, это

byte myByte = a==b?1:0;

и я получаю ошибку

Не может косвенно преобразовать тип «int» в байт? '.Существует явное преобразование (вам не хватает актерского состава?)

Решение

byte myByte = (byte)(a==b?1:0);
Это было полезно?

Решение

А byte, sbyte, short и ushort типы данных не имеют назначенных суффиксов.Однако целочисленный литерал может быть присвоен переменным этих типов данных и будет неявно преобразован, предполагая, что значение подходит для хранения в переменной.Для справки, вот определенные литералы в C#:

uint: U or u
long: L or l
ulong: UL or ul
float: F or f
decimal: M or m

Другие советы

Я бы просто использовал гипс.

// Okay
Byte data = (Byte) 57;

// Error (but I don't know if it is a compiler error or a runtime error)
Byte data = (Byte) -17;

Или ввести константу.

// Okay
const Byte foo = 57;
Byte data = foo;

// Compiler Error
const Byte foo = -17;
Byte data = foo;

В соответствии с эта почта, у байта нет такого суффикса.

Вам не нужен суффикс при определении байта:

   byte b = 1;

Вам просто нужно убедиться, что ваше значение находится в диапазоне от 0 до 255.

MSDN называет использование буквы F «суффиксом», что приводит к использованию буквального типа.

См. следующую статью на До-диез онлайн Чтобы получить больше информации

Шестнадцатеричное обозначение:

Байт б = 0xff;

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top