2009-07-22 35 views
0

當您在visual studio中創建一個新類時,它將包含一個名稱空間定義,該定義從項目屬性中設置的默認名稱空間中提取。但是,如果您刪除名稱空間定義,則它將選擇默認名稱空間。移除它是否安全並將它留在那裏有什麼好處?從Visual Studio中的新類中刪除命名空間定義是否安全?

+0

這是VB.NET嗎? – 2009-07-22 01:27:15

+0

要麼我發現兩者都是相同的,即我可以從類文件中刪除命名空間,在對象瀏覽器中搜索類並查看該類實際上駐留在默認名稱空間中 – 2009-07-22 01:38:35

+0

實際上,仔細看c#和vb .net的行爲有所不同。因爲我的程序集與默認名稱空間的名稱相同,所以類似乎屬於名稱空間,但實際上在c#中的全局名稱空間中。在vb.net中,相同的代碼似乎將該類添加到默認名稱空間而不是全局名稱空間。 – 2009-07-22 01:55:21

回答

1

在c#中,類不會自動使用默認名稱空間,而是會駐留在通常爲no的全局名稱空間中建議。

在VB.NET中,類將自動使用默認名稱空間而不是全局名稱空間,並且很安全,但這不是最佳實踐。正如Pavel Minaev在下面提到的那樣...

在VB上下文中,它是安全的,但一個好的經驗法則是「顯式比隱式更好」。就我個人而言,我總是發現VB隱式名稱空間和導入是錯誤代碼的一個很好的例子,它們會妨礙代碼的可讀性而不是簡潔。但是,當然,這是非常主觀的。

0

一般而言,它不會選取默認名稱空間。一般來說,它將其放入全局命名空間中,這不是同一件事。

如果您希望該類位於名稱空間中,請將namespace保留原位。

3

在VB上下文中,它是安全的,但一個好的經驗法則是「顯式比隱式更好」。就我個人而言,我總是發現VB隱式名稱空間和導入是錯誤代碼的一個很好的例子,它們會妨礙代碼的可讀性而不是簡潔。但是,當然,這是非常主觀的。

1

理論上它是可能的和合法的,但是......它只是不好:)(在99%的情況下)。在編寫代碼時,將其「打包」到某個名稱空間中很不錯。
此外,您不會有名字衝突FE問題(2類具有相同的名字 - 法律和管理的,如果你會在不同的命名空間讓他們
基本上:
1.在全局命名空間中擁有的東西是沒有的。很好(與「默認」命名空間不同)
2.命名空間允許您更容易地管理代碼(這是一個好處,即使是默認的命名空間也不會刪除它)
3.命名空間有助於解析名稱衝突等

相關問題