在尝试学习Unity时,我一直看到以下代码覆盖GetControllerInstanceMVC:
if(!typeof(IController).IsAssignableFrom(controllerType)) { ... }
Run Code Online (Sandbox Code Playgroud)
在我看来,这基本上是一种非常复杂的写作方式
if(controllerType is IController) { ... }
Run Code Online (Sandbox Code Playgroud)
我理解,存在之间的细微差别is和IsAssignableFrom,即IsAssignableFrom不包括投转换,但我在努力了解实际情况下这种差别的含义.
什么时候选择IsAssignableFrom结束有意义is?它会有什么不同GetControllerExample?
if (!typeof(IController).IsAssignableFrom(controllerType))
throw new ArgumentException(...);
return _container.Resolve(controllerType) as IController;
Run Code Online (Sandbox Code Playgroud)