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;