Frage

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.

War es hilfreich?

Lösung

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top