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
yIsAssignableFrom
es 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;