【发布时间】:2008-09-30 14:23:40
【问题描述】:
在 C 和 C++ 中,您可以通过在数字末尾添加“l”来告诉编译器数字是“long”。 例如长 x = 0l;
如何告诉 C# 编译器一个数字是一个字节?
【问题讨论】:
-
我喜欢这些答案,但是将数字转换为字节与将数字声明为字节一样吗?
在 C 和 C++ 中,您可以通过在数字末尾添加“l”来告诉编译器数字是“long”。 例如长 x = 0l;
如何告诉 C# 编译器一个数字是一个字节?
【问题讨论】:
byte b = (byte) 123;
虽然
byte b = 123;
做同样的事情。如果你有一个变量:
int a = 42;
byte b = (byte) a;
【讨论】:
根据C# language specification,没有办法指定字节文字。您必须转换为字节才能获得一个字节。您最好的选择可能是指定十六进制并向下转换,如下所示:
byte b = (byte) 0x10;
【讨论】:
(byte) 是在投射“无操作”吗?或者至少需要一段时间是真的吗?
记住,如果你这样做了:
byte b = (byte)300;
它不会像你期望的那样工作。
【讨论】:
MSDN 使用implicit conversion。我没有看到byte type suffix,但您可能会使用显式转换。我只使用 2 位十六进制整数 (int) 常量。
【讨论】:
无需告诉编译器。您可以为 byte 变量分配任何有效值,编译器就可以使用它:byte 没有后缀。
如果你想在一个对象中存储一个字节,你必须强制转换:
object someValue = (byte) 123;
【讨论】: