2012-12-27 26 views
6

這是一個愚蠢的問題,但我無法弄清楚要問Google的術語。導入像Java一樣的所有子類,但在C#中

在Java中,如果我想導入所有子類中我會使用類似

java.util.* 

而且所有UTIL將被導入。首先,我在C#中做什麼是正確的行話,所以我可以更有效地開始使用Google。我是否在導入命名空間?圖書館?子類? (你能告訴我是新的嗎?)

其次,因爲我在這裏,這是怎麼實現的C#?

PS-我沒有點擊每個相關的問題stackoverflowflow扔我看看答案會彈出。沒有運氣。我簡直無言以形容我在找什麼。這個例子應該沒​​問題,但是...任何人都可以花一點時間向我解釋術語,或者只是指向我一些可以(簡而言之,我有一對長期的書),這將是大。

+2

您正在導入命名空間。 C#中沒有這樣的結構 –

回答

18

首先,讓我們區分程序集引用命名空間

組件是你在你的C#項目添加引用,它們是包含你所需要的實際類的庫,通常發現的DLL文件。 .net框架包含許多這樣的程序集,Visual Studio將嘗試引用項目中最常用的程序(例如,對於WinForms項目,它會自動添加對System.Drawing.dll的引用)。

命名空間是在組裝的類的邏輯分區。

一旦你在項目中引用的組件,在所有命名空間的所有類都可以使用,如果你提供他們的全名。

這是using指令進來的地方。 這是簡單的語法糖,因爲它不必長時間寫很長的名字。

例如,假設你的項目引用System.Drawing.dll組件,你就必須使用它的全名纔有資格從本次大會的一類,例如

System.Drawing.Imaging.BitmapData 

因爲這是無聊和醃的代碼,如果你啓動.cs文件,

using System.Drawing.Imaging; 

,那麼你可以使用實例只是名字BitmapData類。 只有在您添加了using指令的.cs文件中才會如此,而不是整個項目。 此外,重要的是要注意,using其中一個命名空間不會引入所有嵌套命名空間,您必須分別單獨使用using

+0

謝謝。一個非常簡單,深思熟慮的答覆。另外,現在我知道爲什麼我必須在#Develop中使用引用thingy,然後纔在代碼中使用'using'。再次感謝! –

4

它可以被稱爲導入/引用/使用名稱空間。

這樣的語言功能在c#中不可用。

有點解釋:Namesspaces可以分佈在多個庫中。所以當你使用一個名字空間時,它可能會從多個引用的程序集中引用它。

+0

啊,好的。所以我根據需要導入它們。那麼,至少應該有更好的編碼實踐,雖然我喜歡有時候會作弊......只是爲了檢查我是否使用了'代碼'這樣的代碼'使用ExcelApi代碼',它不包含使用ExcelApi.Utils代碼'代碼' '作爲例子?我必須同時執行兩個導入才能獲得兩個級別的命名空間? –

+0

這就是..把它放在一個簡單的..使用系統和使用System.Web是不同的。 – humblelistener

0

在.Net中,您首先需要確保存在包含要導入的名稱空間的引用程序集。一旦存在該引用,就可以使用'using'指令將該名稱空間帶入類中,以便不必完全限定所有對象名稱。你可以找到更多關於這個指令on MSDN信息。

如果我誤解了,請告訴我,我會盡我所能讓您指出正確的方向。

1

這就是所謂的namespace並且它是由一個關鍵字using進口。例如:

using System; 

該語句使您能夠引用該名稱空間中存在的所有類。但是,它們不能讓您在聲明的namespace的子名稱空間中引用任何類。你必須分別申報每個namespace。例如:

using System; 
using System.Text; 

當然,你需要有添加到你指定的using指令的項目適當引用。

相關問題