2008-09-30 131 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

不需要告诉编译器。你可以给字节变量赋值任何有效值,编译器就可以了:字节没有后缀。

如果你想一个字节存储在一个对象,你要投:

object someValue = (byte) 123;