Use of IsAssignableFrom and "is" keyword in C#
It's not the same.
if(controllerType is IController)
would always evaluate to false
since controllerType
is always a Type
, and a Type
is never an IController
.
The is
operator is used to check whether an instance is compatible to a given type.
The IsAssignableFrom method is used to check whether a Type is compatible with a given type.
typeof(IController).IsAssignableFrom(controllerType)
tests a Type
against the interface. The is
operator tests an instance against the interface.