"是"运算符编译时警告

oti*_*oza 4 c# warnings

来自参考:

如果已知表达式始终为true,则is关键字会导致编译时警告.

我试图创建一个例子:

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

        if (c is Object)
        {
            //...
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何警告.为什么?

有人能告诉我一个例子,我得到一个警告(因为表达式始终是真的)?

它适用于虚假.

p.s*_*w.g 7

is运营商将返回false,如果该值null,因此,如果调用method(null)它不会进入任何if-块.

但是,如果MyClass实际上是一个struct(即不可为空),这将产生警告.