Verwendung von IsAssignableFrom und dem Schlüsselwort "is" in C #

Während ich versuche zu lernenEinhei, Ich sehe immer wieder den folgenden Code zum Überschreiben vonGetControllerInstance in MVC:

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

dies scheint mir eine ziemlich verschlungene Art zu sein, im Grunde zu schreiben

if(controllerType is IController) { ... }

Ich schätze, es gibt subtile Unterschiede zwischenis undIsAssignableFrom, dhIsAssignableFrom enthält keine Cast-Konvertierungen, aber ich habe Schwierigkeiten, die Auswirkungen dieses Unterschieds in praktischen Szenarien zu verstehen.

Wenn es wichtig ist, @ zu wählIsAssignableFrom Überis? Welchen Unterschied würde es in der @ machGetControllerExample?

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

Antworten auf die Frage(8)

Ihre Antwort auf die Frage