在MSDN上,我可以閱讀它做什麼,但我想知道它在技術上的作用(告訴編譯器在哪裏尋找類型..)?我的意思是用作指令。使用指令是幹什麼的?
6
A
回答
8
using
指令的主要功能是使命名空間內的類型不受用戶代碼限制。它考慮在引用程序集中定義的名稱空間和類型集以及正在編譯的項目。
就拿在MyTypes.Dll
namespace MyTypes {
class Class1 {}
}
下面的定義現在考慮從不同的命名空間的另一個項目引用MyTypes.dll
。如果不使用指令創建Class1
一個我需要來限定名稱
MyTypes.Class1 local1 = new MyTypes.Class1();
的using
指令讓我刪除這個資格
using MyTypes;
...
Class1 local1 = new Class1();
0
using
通知編譯器哪些名稱空間用於搜索文件中使用的名稱,但未在文件中定義。
2
@ JaredPar的答案是正確的,但我想補充一點,並不完全像Java中的import
一樣工作。 (有人糾正我,如果我錯了有關Java的import
實際上將它導入到內存)
您需要包括以甚至能夠使用using
無論是DLL或項目的參考,但是它沒有加載到內存中,直到你真正調用程序集中的方法/屬性/東西。所以你可以有using System.Linq;
但是如果你實際上沒有使用任何Linq方法,Linq程序集永遠不會被加載。 (我不是100%肯定Linq是自己的物理組件,因爲命名空間和程序集不是1:1,但爲了舉例我假設它是)
0
使用只是告訴編譯器去到程序集的配置文件,然後用給定的名稱搜索一個特定的DLL,如果找到了DLL,那麼它將該dll鏈接到當前項目中。使用只是一個鏈接操作,讓DLL在內存中的共享空間中相互交談。 這裏下面的人是正確的
相關問題
- 1. AngularJS:這個指令是幹什麼的?
- 2. 這是什麼C#「使用」指令?
- 3. 什麼是,什麼是使用封閉「指令」
- 4. 「ko.validation.rules.pattern.message」指令的作用是什麼?
- 5. 什麼在骨幹listenTo()是指「本」,以
- 6. 什麼是序言指令?
- 7. 這是什麼指令?
- 8. 什麼是JVM指令?
- 9. 什麼是指令? dojo dstore
- 10. 這是什麼movsbl指令?
- 11. 什麼是ng-app指令
- 12. 什麼是callq指令?
- 13. 什麼是每秒指令?
- 14. 什麼是特權指令?
- 15. 什麼是版本指令?
- 16. 爲什麼我的指令不能使用ng-bind-html指令?
- 17. 在C#中維護使用指令的「乾淨」列表有什麼好處?
- 18. Les指令的目的是什麼?
- 19. cmpq指令是做什麼的?
- 20. Apache配置中的指令是什麼?
- 21. Angular2中指令的替換是什麼?
- 22. 什麼是bnez MIPS指令的編碼?
- 23. GCC中的'__IO'指令是什麼?
- 24. 什麼是插入和VUE的指令
- 25. 什麼是屬性指令的例子
- 26. 什麼是PLC中的差分指令?
- 27. 指令的解碼形式是什麼?
- 28. {$ C PRELOAD}指令的含義是什麼?
- 29. 什麼是@Decorator指令的替代?
- 30. 什麼是Laravel的刀片指令?
另外,如果在應用程序命名空間中找不到類型,編譯器將通過使用包含的命名空間進行搜索,對嗎? – Loj 2010-10-21 20:57:45
@Mojmi的常見情況是。名稱查詢實際上非常複雜,我特別沒有評論它究竟是如何工作的,因爲我很有可能會錯失有趣的細節。 – JaredPar 2010-10-21 21:00:30