不能将 0 或 1 强制转换为 C# 中的布尔值

本文关键字:布尔值 转换 不能 | 更新日期: 2023-09-27 18:33:26

我今天早些时候在玩类型转换,遇到了一个有趣的东西。C# 编译器无法将01转换为布尔数据类型。例如:

bool b = (bool)0;

将返回 false(如果它能够编译)。

这里似乎没有任何信息丢失,所以我的问题是,C# 编译器不允许您这样做是否有一些特定原因?

不能将 0 或 1 强制转换为 C# 中的布尔值

因为为了让你的演员表正常工作,每个int都必须能够被投射到 bool ,而不仅仅是 1 和 0。不允许将所有整数视为布尔值的决定是有目的地做出的,以消除在允许的语言(例如 C 和 C++)中出现错误的可能性。