将bool转换为byte

时间:2012-06-18 07:32:08

标签: c#

bool myBool = true;
byte myByte;
  • 此转化运行myByte = Convert.ToByte(myBool);
  • 此转化不会运行myByte = (byte)myBool;

对于新手(me):为什么以上不同?

1 个答案:

答案 0 :(得分:6)

Convert.ToByte是一种方法 - 它可以做任何想做的事情,可能是这样的:

return input ? (byte) 1 : (byte) 0;

演员表是语言级操作。它要求语言知道转换本身,或者所涉及的类型之一具有使用正确输入和输出类型的用户定义转换。从bool转换为byte时,这两种情况都不是。

基本上,该语言没有定义该演员的意思,因此编译器禁止它。