2008-10-12 32 views
14

VB.NET有「我的」命名空間,但有多少VB.NET開發人員實際使用它?你在VB.NET中使用'My'命名空間嗎?

  • 如果你不這樣做,爲什麼?
  • 如果你使用它,爲什麼?

我正在考慮爲VB.NET構建一個框架,並使用My命名空間將它插入到VB中似乎是一個合理的想法。是嗎?

+1

你也可以在C#中使用它,儘管並不是很多C#開發者似乎都在使用它。 – 2008-10-12 12:50:55

+0

這裏是感興趣的鏈接:http://msdn.microsoft.com/en-us/library/ms173136.aspx – 2008-10-12 12:53:45

回答

12

我的目的,我的理解,是一件容易的快捷方式是共同但有一定的API任務難以找到或難以利用。你可能不應該完全將你的框架包含在My下面。 (一方面,使用框架C#的人可能會不高興。)

相反,你應該將它設計爲一​​個正常的框架。完成後,列出一些人們可能想要使用框架的常見任務。看看其中是否有任何可能對我有幫助,特別是在可以以多種方式使用的類或方法的地方,但它們有一兩種真正常見的用法,可以用My縮寫。

本文介紹如何擴展我的,它有在最後描述了一些設計準則,以遵循節:Simplify Common Tasks by Customizing the My Namespace

關於你提到的主要問題,在VB .NET編碼的時候,我用我的盡我所能。它將一些操作減少爲一行代碼。

2

我主要使用C#和Boo,但是當我使用VB.NET時,我經常使用My命名空間。我沒有看到任何理由不能簡化編碼。它仍然保持其可讀性。

1

我只從用戶的角度使用它,我從來沒有插入任何東西。我認爲My命名空間是一些高度可靠的,由平臺提供的全球輔助機制。真的,正式批准的捷徑。我可能會驚訝於看到外部用戶或第三方代碼。因此,我鼓勵vb框架定義自己的適當命名的命名空間,而不是鎖定到現有的My命名空間。這樣的框架不應該具有「全局」的感覺。

8

我真的很喜歡VB.NET中的「我的」命名空間,我總是在我的WindowsForms應用程序中使用它,因爲它非常直觀。

我主要使用這些類別:

  • My.Computer:主要用於文件系統和網絡的目的
  • My.Application:版本號,當前目錄
  • My.Resources:獲得資源使用由以強類型方式駐留在資源文件中的應用程序執行。
  • My.Settings:非常方便

我想,如果你擴展你的框架的我的吻合,那麼很多VB.NET程序員會感激他們。

1

到目前爲止還沒有使用過它,但我從未真正看過它。

我不會建議你自己把任何東西放到我的命名空間中,它更加清晰,就像你將它放在非VB框架中一樣。

5

我們在一些代碼中使用它,但猶豫如此。確實,My通常有助於使代碼更具可讀性。例如,Environment.SpecialFolder枚舉好奇地缺少一個Temp成員,而My.Computer.FileSystem.SpecialDirectories有一個(Path.GetTempPath()也可以,但與其他特殊文件夾相比很難做到)。

但是My只對這種情況有好處,因爲現有的API設計的很糟糕,並不是因爲My本質上更好。像JAGregory一樣,我強烈建議儘可能避免擴展My或任何其他類型的全局命名空間,變量等。這個想法不適合一個乾淨的OOP架構。

+3

有人可能會爭辯說,您正在評估一個乾淨的OOP體系結構,以提高生產力和可讀性? – MarkJ 2009-10-16 11:42:48

3

我從來沒有使用My命名空間(我是C#開發人員),但我的VB同事並不如此。我發現我的成員不是必需的,因爲在很多情況下,他們對我來說是違反直覺的。在我看來,打開文件與IO(因此System.IO.File)有關,而與我的電腦(My.Computer.FileSystem)無關。他們看起來總是那麼分散,聚集在一起。

這只是一些已經可用的功能的重新滾動,否則,從所有語言。我不喜歡取決於Microsoft.VisualBasic.dll,當我爲.NET開發時 - 我總是比較喜歡System。*。

然後,它總是有限的。我發現VB開發人員在他們的應用程序中遇到困難,因爲他們無法想象您可以在System命名空間中使用某些東西。這當然不是我的命名空間本身的問題。

1

愛我的!任何能夠幫助我更快完成工作的東西,併爲我不必寫的解決方案提供代碼,效果會更好!

0

我正在考慮爲VB.NET構建一個框架,並使用My命名空間將它插入到VB中似乎是一個合理的想法。是嗎?

如果它適合,通過各種手段,使用它。由於您沒有提供關於您的框架的更多信息,所以很難說。我不會把通用的東西放到My命名空間中(比如My.Computer的東西),因爲放在那裏並沒有什麼好處。但是,以應用程序爲中心的助手很適合。

4

我已經在我的VB.NET項目中使用了My,並且我不覺得內疚。我主要是一個C#人,但直到我將我的公司轉換到C#之前,我們是一家VB商店。在我看來,My命名空間是一個很好的語法糖。正如我並不尷尬地使用C#的合併操作符和其他糖,我也不會爲使用VB的糖而感到尷尬。 (在某種程度上,我不會使用.NET仍然公開的經典VB函數。)

也就是說,從來沒有把任何東西放在該命名空間。它是微軟的命名空間,就像你不會在系統和微軟下面放置任何東西一樣,不要把任何東西放在My下面。這會在後面引起混淆 - 如果不適用於您,則適用於維護您的代碼的其他人。爲您自己的代碼創建您自己的名稱空間。

1

我在VB.NET編程時經常使用My.Settings和My.Computer。我特別喜歡My.Settings作爲使用ConfigurationManager的替代方案。AppSettings何時適用。

我同意約翰魯迪關於我的使用。它是使生命更具可讀性的語法糖。