Uso de IsAssignableFrom y la palabra clave "is" en C #

Mientras trato de aprenderUnidad, Sigo viendo el siguiente código para anularGetControllerInstance en MVC:

if(!typeof(IController).IsAssignableFrom(controllerType)) { ... }

esto me parece una forma bastante complicada de escribir básicamente

if(controllerType is IController) { ... }

Aprecio que hay diferencias sutiles entreis yIsAssignableFromes decirIsAssignableFrom no incluye conversiones de lanzamiento, pero me cuesta entender la implicación de esta diferencia en escenarios prácticos.

¿Cuándo es importante elegirIsAssignableFrom terminadois? ¿Qué diferencia haría en elGetControllerExample?

if (!typeof(IController).IsAssignableFrom(controllerType))
      throw new ArgumentException(...);
return _container.Resolve(controllerType) as IController;

Respuestas a la pregunta(4)

Su respuesta a la pregunta