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

mpe*_*pen 3 c# syntax

是否有更清晰的方式来写这个?

if (!(obj is bool) || (bool)obj)
Run Code Online (Sandbox Code Playgroud)

在PHP或JS中你可以写

if (obj !== false) // note the double == to indicate a type-check
Run Code Online (Sandbox Code Playgroud)

它只是有点难以阅读,并且在C#中语法相当丑陋.


要绝对清楚,obj是一个object.

Meh*_*dad 6

if (!false.Equals(obj))  { ... }
Run Code Online (Sandbox Code Playgroud)

编辑:因为我不希望@BoltClock失去视力,所以这里可能会更好:

if ((bool?)obj != false) { ... }
Run Code Online (Sandbox Code Playgroud)

编辑2:不要尝试我上面提到的内容,因为如果objbool?或者类型以外它将不起作用bool.

  • 聪明,虽然我现在不得不试图阻止我的眼睛看到`!false`,所以他们可以看到`.Equals(obj)`附加到`false` :) (2认同)