不能将 0 或 1 强制转换为 C# 中的布尔值
本文关键字:布尔值 转换 不能 | 更新日期: 2023-09-27 18:33:26
我今天早些时候在玩类型转换,遇到了一个有趣的东西。C# 编译器无法将0
或1
转换为布尔数据类型。例如:
bool b = (bool)0;
将返回 false(如果它能够编译)。
这里似乎没有任何信息丢失,所以我的问题是,C# 编译器不允许您这样做是否有一些特定原因?
因为为了让你的演员表正常工作,每个int
都必须能够被投射到 bool
,而不仅仅是 1 和 0。不允许将所有整数视为布尔值的决定是有目的地做出的,以消除在允许的语言(例如 C 和 C++)中出现错误的可能性。