bool myBool = true;
byte myByte;
myByte = Convert.ToByte(myBool);
myByte = (byte)myBool;
对于新手(me
):为什么以上不同?
答案 0 :(得分:6)
Convert.ToByte
是一种方法 - 它可以做任何想做的事情,可能是这样的:
return input ? (byte) 1 : (byte) 0;
演员表是语言级操作。它要求语言知道转换本身,或者所涉及的类型之一具有使用正确输入和输出类型的用户定义转换。从bool
转换为byte
时,这两种情况都不是。
基本上,该语言没有定义该演员的意思,因此编译器禁止它。