質問

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.

役に立ちましたか?

解決

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.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top