这个
row["active"].GetType().ToString()
Run Code Online (Sandbox Code Playgroud)
逃避
System.Boolean
Run Code Online (Sandbox Code Playgroud)
为什么这是一个错误?
if (row["active"]) { ... }
if (row["active"] == true) { ... }
Run Code Online (Sandbox Code Playgroud)
我认为System.Boolean可能是true还是false?
返回类型row["active"]是一个对象,它作为布尔谓词无效.返回的值实际上是一个包装的布尔值并不重要.
你知道它是一个布尔值,但编译器没有.如果row["active"]会突然返回一个字符串怎么办?比表达式无效..NET运行时在编译时提前绑定变量.它不像运行时的语言那样在运行时评估它们的类型.
你必须通过强制转换它告诉编译器值是一个布尔值:
if ((bool)row["active"]) { ... }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
180 次 |
| 最近记录: |