在C#我可以分配一个号码(最多255)直接连接到类型字节的变量:如果我这样做在一个更复杂的声明与一个条件运算为什么在使用条件运算符时需要额外的投射?
byte red = 255;
然而:
byte red = (redNode != null) ? byte.Parse(redNode.Value) : 255;
我得到一个错误:“CS0266不能隐式地将类型'int'转换为'byte'。存在明确的转换(你是否缺少一个转换?)”。
我需要明确地做投以字节为255:
byte red = (redNode != null) ? byte.Parse(redNode.Value) : (byte)255;
这是为什么投需要?
因为两者如果其他人应该返回相同类型的实例 –
那里不是从int到byte的隐式转换,而是明确的转换。由于某种原因,它被命名为“显式” - 您需要明确地应用它:) – Evk