我知道我可以通过做
float y = 4.5f;
我想做同样的事情,除了一个字节。我该怎么做呢?我检查了 MSDN 文档,找不到与此相关的任何内容。还有,这个叫什么?
谢谢,
[编辑]
为清楚起见,我使用的代码是
byte myByte = a==b?1:0;
我得到的错误是
无法将类型“int”隐式转换为“byte?”。存在显式转换(您是否缺少演员表?)
解决方案
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 作为“后缀”,强制使用 Literal Type。
有关更多信息,请参阅C-sharp Online上的以下文章
十六进制表示法:
字节 b = 0xff;