Code Optimization- Equality/Null referencing

Recently I came across the bit of info about checking if something is null, usually:

if (var == null)

is less performant, using 4 calls, instead of one call, by saying:

if (var is null)

Which is all fine and dandy like cotton candy… However, this call does not work when the var in question is an object. Exactly why? I’m not sure. So I have found that Unity also has something quite similar in performant calling, like:

if (!(obj1 is object))

However, this doesn’t work because even when an object is null in Unity, it is considered:

None (GameObject)

So checking said object’s null reference, seems to only be handle-able by continuing to say:

if (obj1 == null)

I have found that my Version of C# in Visual Studio is C#8, and has not been upgraded to C#9, yet. So I guess my question is, is this issue fixed in C#9? Or is there something I’m missing when trying to performantly call an object’s reference of null or not?

A fellow dev filled me in with Unity and it’s GameObject’s calling, that the operand “==” needs to be used when referencing gameObjects. I guess it’s just a thing? But seems to be the only answer