Question

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.

Was it helpful?

Solution

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.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top