Использование IsAssignableFrom и ключевого слова «is» в C #

Пытаясь научитьсяЕдинствоЯ продолжаю видеть следующий код для переопределенияGetControllerInstance в MVC:

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

это кажется мне довольно запутанным способом в основном писать

if(controllerType is IController) { ... }

Я ценю тонкие различия междуis а такжеIsAssignableFromт.е.IsAssignableFrom не включает в себя кастовые преобразования, но я изо всех сил пытаюсь понять значение этого различия в практических сценариях.

Когда важно выбратьIsAssignableFrom надis? Какая разница будет вGetControllerExample?

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

Ответы на вопрос(4)

Ваш ответ на вопрос