Question

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"

Was it helpful?

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.

OTHER TIPS

It isn't, because is is tolerant to null reference at the left-hand side.

It's not the same as is is translated into the isinst opcode whereas IsInstanceOf is a normal virtual call on Type.

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