Home > other >  How to mute the CS8602 warning if it's checked with the is-Operator before in C#
How to mute the CS8602 warning if it's checked with the is-Operator before in C#

Time:10-09

I do my best to check null values. But often, I try this with the is-Operator. While this, I expect, he will give true back only, if operand is a not-null value.

Example:

EndPoint endPoint = new();

if (endPoint is IPEndPoint)
    DoSomething(endPoint as IPEndPoint); // The "as" expressions give the CS8602 warning

...

void DoSomething(IPEndPoint endPoint)
{
    ...
}

With this, I get a CS8602 compiler warning, but endPoint is a IPEndPoint and the as expression can't be null. So IMHO, the compiler warning is wrong. How can I mute it for before checks with the is-Operator only?

(Maybe inside the .editorconfig anyhow?)

CodePudding user response:

is and as are two separate casting operations and the compiler tries to cast and validate both of them, so it's reasonable to say warning CS8602.

As @Adassko said in the comment the best way is to cast the object once and use the casting result (if castable):

EndPoint endPoint = new();

if (endPoint is IPEndPoint endpoint)
    DoSomething(endpoint);
  • Related