Domanda

From the reference:

The is keyword causes a compile-time warning if the expression is known to always be true.

I tried to create an example:

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

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

But I don't get any warnings. Why?

Can someone show me an example where I get a warning (because the expression is always true)?

It works for false.

È stato utile?

Soluzione

The is operator will return false if the value is null, so if you call method(null) it would not enter either if-block.

However, if MyClass were actually a struct (i.e. not nullable), this would produce a warning.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top