Search code examples
c#typeskeywordisinstance

is the "is" operator just syntactic sugar for the "IsInstanceOfType" method


Are the following code snippets equivalent?

class a
{}

class b:a
{}

b foo=new b();

//here it comes

foo is a

//...is the same as...

typeof(a).isinstanceoftype(foo)

Or maybe one of the other Type Methods map closer to the is operator. e.g. "IsAssignableFrom" or "IsSubclassOf"


Solution

  • No it's not. In fact, if you peek into IsInstanceOfType you will see that the very first code line actually performs a comparison using is, which would effectively lead to a StackOverflowException if that was the case.

    The is operator leads to an isinst operation in the IL code.