有没有更清洁的方式来写这个?
if (!(obj is bool) || (bool)obj)
在PHP或JS中,您可以编写
if (obj !== false) // note the double == to indicate a type-check
在C#中,这有点很难读,而且在语法上非常丑陋。
绝对清楚,
obj
是object
。 最佳答案
if (!false.Equals(obj)) { ... }
编辑:由于我不希望@BoltClock失去视力,所以这可能会更好:
if ((bool?)obj != false) { ... }
编辑2:不要尝试我上面提到的内容,因为如果
obj
是bool?
或bool
以外的其他类型,它将不起作用。