有没有更清晰的方法来检查对象是否不是假的?

时间:2011-04-05 01:56:28

标签: c# syntax

有没有更简洁的方法来写这个?

if (!(obj is bool) || (bool)obj)

在PHP或JS中你可以写

if (obj !== false) // note the double == to indicate a type-check

它只是有点难以阅读,而且在C#中非常难以理解。


要绝对清楚,objobject

3 个答案:

答案 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))