今天早些时候我在玩类型演员,发现了一件有趣的事情。C#编译器无法将0或1转换为布尔数据类型。例如:
bool b = (bool)0;返回false (如果它能够编译的话)。
这里似乎没有任何信息丢失,所以我的问题是,C#编译器不允许您这样做有什么具体原因吗?
发布于 2013-10-01 01:03:22
因为为了使您的强制转换正常工作,每个int都必须能够转换为bool,而不仅仅是1和0。不允许将所有整数视为布尔值的决定是有目的的,目的是消除这种允许的语言(例如C和C++ )中出现的错误类型的可能性。
https://stackoverflow.com/questions/19106296
复制相似问题