2010-08-29 32 views
0

我從here知道我們必須爲子名稱空間執行顯式導入,因爲導入不會包含子名稱空間。「imports namespace」的工作

但是我的問題是,如果我做「進口系統」,它是否將在IL /本地代碼中包含該名稱空間內的所有類/方法,或者僅引用(在應用程序內部使用)將包含在IL /本地代碼。

+0

'Imports System'是VB.NET;如果你在說C#,那是**'使用'**'系統;'。 – stakx 2010-08-29 16:46:43

+0

現在正確地重新標記。 – Antoops 2010-08-29 16:58:52

回答

2

導入命名空間並不意味着代碼中包含任何內容。它只意味着編譯器可以識別來自該名稱空間的標識符。

項目中的引用是真正決定應用程序使用哪些庫的參考。儘管如此,這些庫在需要時加載,它們不包含在可執行文件中。

+0

所以在運行時所引用的名稱空間將被完全加載,否則只會將所需的類加載到內存中? – Antoops 2010-08-29 17:06:34

+0

@Antoops:好吧,整個庫都會被加載,但這並不意味着所有類都需要通過JIT編譯器運行並創建。但是,圖書館中的某些類依賴於其他類,因此必須創建比您直接使用的類更多的類。 – Guffa 2010-08-29 17:37:18