Uso de IsAssignableFrom e da palavra-chave "is" em C #

Enquanto tenta aprenderUnidade, Continuo vendo o código a seguir para substituirGetControllerInstance no MVC:

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

isso me parece uma maneira bastante complicada de escrever basicamente

if(controllerType is IController) { ... }

Eu aprecio que existem diferenças sutis entreis eIsAssignableFrom, ieIsAssignableFrom não inclui conversões de elenco, mas estou lutando para entender a implicação dessa diferença em cenários práticos.

Quando é importante escolherIsAssignableFrom sobreis? Que diferença isso faria noGetControllerExample?

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

questionAnswers(4)

yourAnswerToTheQuestion