“是”运算符编译时警告

时间:2014-03-18 16:33:58

标签: c# warnings

来自reference

  

如果表达式是,则is关键字会导致编译时警告   已知永远是真实的。

我试图创建一个例子:

class MyClass
{
    public void method(MyClass c)
    {
        if (c is MyClass)
        {
            //...
        }

        if (c is Object)
        {
            //...
        }
    }
}

但我没有收到任何警告。为什么呢?

有人可以给我看一个示例,我会收到警告(因为表达式始终为真)?

它适用于虚假。

1 个答案:

答案 0 :(得分:7)

is运算符如果值为null则返回false,因此如果您调用method(null),则不会输入if - 阻止。

但是,如果MyClass实际上是struct(即不可为空),则会产生警告。