我发现,如果我有一个类型为“byte”的字段或变量,我可以对其应用位非(~)并将其转换为byte。但是,如果该字段是“const byte”,我仍然可以应用位非(~),但我不能将其转换为byte。例如,
此代码可以编译:
但是这个代码会出现编译错误("常量值'-8'无法转换为'byte'"):
此代码可以编译:
class Program
{
byte b = 7;
void Method()
{
byte bb = (byte) ~b;
}
}
但是这个代码会出现编译错误("常量值'-8'无法转换为'byte'"):
class Program
{
const byte b = 7;
void Method()
{
byte bb = (byte) ~b;
}
}
我想知道为什么?
/checked
编译程序,否则您将不会收到异常,这绝对不是正常情况。 - Sam Harwell/checked
默认是关闭的。 - user2160375