我不知道这是什么电话或如何谷歌的解释,但在这里不用接口:声明一个类继承的接口
让说我有一个接口调用的iView和类继承的iView调用视图类。在一些项目中,我看到下面的代码:
IView view = new View();
为什么这样做?为什么不只是做
var view = new View();
是否有目的声明一个接口,然后创建一个视图对象?为什么不做第二步?
我不知道这是什么电话或如何谷歌的解释,但在这里不用接口:声明一个类继承的接口
让说我有一个接口调用的iView和类继承的iView调用视图类。在一些项目中,我看到下面的代码:
IView view = new View();
为什么这样做?为什么不只是做
var view = new View();
是否有目的声明一个接口,然后创建一个视图对象?为什么不做第二步?
如果您使用var
关键字,则会自动检测变量的类型,并且可能类型为View
而不是IView
。您的代码读者更清楚您实际上是否有IView
引用。
接口的思想是,哪个类实现它们并不重要,所以你的代码是建立在这个事物的基础上的,它实现了所有的IView的属性和方法,不管它是哪个类。
像这样的设置将允许您稍后轻松插入不同的类。你可以用这行代替对IView factory的调用,其中你根本不知道它返回哪个类实例。
您可能需要查看不是任何视图,例如,如果View是一个SpecialView类,那么var view
将不允许您以后为它分配一些属于它的东西,即使它们都具有一个IView界面。
这很可能是一个骗局,但通常编码像第一个是首选,因为它更具可读性 – aaronman
http://stackoverflow.com/questions/41479/use-of-var-keyword-in-c-sharp –