有没有更简洁的方法来写这个?
if (!(obj is bool) || (bool)obj)
在PHP或JS中你可以写
if (obj !== false) // note the double == to indicate a type-check
它只是有点难以阅读,而且在C#中非常难以理解。
要绝对清楚,obj
是object
。
答案 0 :(得分:6)
if (!false.Equals(obj)) { ... }
编辑:因为我不希望@BoltClock失去视力,所以这可能会更好:
if ((bool?)obj != false) { ... }
击> <击> 撞击>
编辑2:不要尝试我上面提到的内容,因为如果obj
属于bool?
或bool
以外的其他类型,它将无效。
答案 1 :(得分:2)
是的,有。更改代码,使obj的类型为bool
而不是object
。
在代码中的某处,您将bool转换为对象。你为什么这样?找到那个地方并把它当作一个布尔。
这是C#而不是PHP或JS。 C#是强类型 - 使用这个事实!
答案 2 :(得分:0)
尝试这个,它易于阅读,有时候代码需要被开发......
if (obj.Equals(false))