Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
bool myBool = true; byte myByte;
myByte = Convert.ToByte(myBool);
myByte = (byte)myBool;
对于新手(me):为什么以上不同?
me
Convert.ToByte是一种方法——它可以做任何想做的事,可能是这样的:
Convert.ToByte
return input ? (byte) 1 : (byte) 0;
强制转换是语言级别的操作。它要求语言知道转换本身,或者所涉及的类型之一具有用户定义的转换以及正确的输入和输出类型。bool从 转换为时,这两种情况都不是byte。
bool
byte
基本上,该语言没有定义强制转换的含义,因此编译器禁止它。