我不知道這是什麼電話或如何谷歌的解釋,但在這裏不用接口:聲明一個類繼承的接口
讓說我有一個接口調用的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 –