gpt4 book ai didi

c# - 无法在 System.Boolean 上进行测试

转载 作者:行者123 更新时间:2023-11-30 19:36:39 24 4
gpt4 key购买 nike

这个

row["active"].GetType().ToString()

评估为

System.Boolean

为什么这是一个错误?

if (row["active"]) { ... }
if (row["active"] == true) { ... }

我会认为 System.Boolean 可以是 true 或 false?

最佳答案

row["active"] 的返回类型是一个对象,它作为 bool 谓词是无效的。返回的值实际上是一个包装的 bool 值并不重要。

您知道它是一个 bool 值,但编译器不知道。如果 row["active"] 突然返回一个字符串怎么办?比表达式将无效。 .NET 运行时在编译时尽早绑定(bind)变量。它不会像某些动态语言那样在运行时评估它们的类型。

您必须通过强制转换告诉编译器该值是一个 bool 值:

if ((bool)row["active"]) { ... }

关于c# - 无法在 System.Boolean 上进行测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43629169/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com