2008-09-30 3 views
7

В C и C++ вы можете сообщить компилятору, что число является «длинным», положив «l» в конце номера. например, long x = 0l;Как сделать число байтом?

Как я могу сказать компилятору C#, что число является байтом?

+0

мне нравится ответы, но бросает число в байт же, как объявить номер как байт? – Robert 2008-09-30 14:30:15

ответ

9

Согласно C# language specification нет способа указать байт буквальным. Вам нужно будет сбросить байт, чтобы получить байт. Лучше всего, вероятно, указать в шестнадцатеричном и повержены, как это:

byte b = (byte) 0x10; 
9
byte b = (byte) 123; 

даже если

byte b = 123; 

делает то же самое. Если у вас есть переменная:

int a = 42; 
byte b = (byte) a; 
+0

целочисленный литерал будет неявно преобразован из int в байт, так что вам не нужно ставить (байт) бросок перед номером. В случае, если кто-то пропустил логику вышеприведенного примера. – 2014-09-25 09:37:08

4

Помните, что если вы делаете:

byte b = (byte)300; 

это не будет работать так, как вы ожидаете.

+5

Истина этого утверждения зависит от моих ожиданий ;-) – phoog 2011-12-06 17:33:26

+3

@casademora подробно изложит это, как, каков будет результат? – Pacerier 2012-01-20 14:56:34

1

MSDN использует implicit conversion. Я не вижу byte type suffix, но вы можете использовать явное приведение. Я бы просто использовал двухзначное шестнадцатеричное целое число (int).

1

Не нужно сообщать компилятору. Вы можете назначить любое допустимое значение байтовой переменной, и компилятор с ним просто отлично: суффикса для байта нет.

Если вы хотите сохранить байт в объекте, вы должны бросить:

object someValue = (byte) 123;