VB.NET有「我的」命名空間,但有多少VB.NET開發人員實際使用它?你在VB.NET中使用'My'命名空間嗎?
- 如果你不這樣做,爲什麼?
- 如果你使用它,爲什麼?
我正在考慮爲VB.NET構建一個框架,並使用My命名空間將它插入到VB中似乎是一個合理的想法。是嗎?
VB.NET有「我的」命名空間,但有多少VB.NET開發人員實際使用它?你在VB.NET中使用'My'命名空間嗎?
我正在考慮爲VB.NET構建一個框架,並使用My命名空間將它插入到VB中似乎是一個合理的想法。是嗎?
我的目的,我的理解,是一件容易的快捷方式是共同但有一定的API任務難以找到或難以利用。你可能不應該完全將你的框架包含在My下面。 (一方面,使用框架C#的人可能會不高興。)
相反,你應該將它設計爲一個正常的框架。完成後,列出一些人們可能想要使用框架的常見任務。看看其中是否有任何可能對我有幫助,特別是在可以以多種方式使用的類或方法的地方,但它們有一兩種真正常見的用法,可以用My縮寫。
本文介紹如何擴展我的,它有在最後描述了一些設計準則,以遵循節:Simplify Common Tasks by Customizing the My Namespace
關於你提到的主要問題,在VB .NET編碼的時候,我用我的盡我所能。它將一些操作減少爲一行代碼。
我主要使用C#和Boo,但是當我使用VB.NET時,我經常使用My命名空間。我沒有看到任何理由不能簡化編碼。它仍然保持其可讀性。
我只從用戶的角度使用它,我從來沒有插入任何東西。我認爲My命名空間是一些高度可靠的,由平臺提供的全球輔助機制。真的,正式批准的捷徑。我可能會驚訝於看到外部用戶或第三方代碼。因此,我鼓勵vb框架定義自己的適當命名的命名空間,而不是鎖定到現有的My命名空間。這樣的框架不應該具有「全局」的感覺。
我真的很喜歡VB.NET中的「我的」命名空間,我總是在我的WindowsForms應用程序中使用它,因爲它非常直觀。
我主要使用這些類別:
我想,如果你擴展你的框架的我的吻合,那麼很多VB.NET程序員會感激他們。
到目前爲止還沒有使用過它,但我從未真正看過它。
我不會建議你自己把任何東西放到我的命名空間中,它更加清晰,就像你將它放在非VB框架中一樣。
我們在一些代碼中使用它,但猶豫如此。確實,My
通常有助於使代碼更具可讀性。例如,Environment.SpecialFolder
枚舉好奇地缺少一個Temp
成員,而My.Computer.FileSystem.SpecialDirectories
有一個(Path.GetTempPath()
也可以,但與其他特殊文件夾相比很難做到)。
但是My
只對這種情況有好處,因爲現有的API設計的很糟糕,並不是因爲My
本質上更好。像JAGregory一樣,我強烈建議儘可能避免擴展My
或任何其他類型的全局命名空間,變量等。這個想法不適合一個乾淨的OOP架構。
有人可能會爭辯說,您正在評估一個乾淨的OOP體系結構,以提高生產力和可讀性? – MarkJ 2009-10-16 11:42:48
我從來沒有使用My命名空間(我是C#開發人員),但我的VB同事並不如此。我發現我的成員不是必需的,因爲在很多情況下,他們對我來說是違反直覺的。在我看來,打開文件與IO(因此System.IO.File)有關,而與我的電腦(My.Computer.FileSystem)無關。他們看起來總是那麼分散,聚集在一起。
這只是一些已經可用的功能的重新滾動,否則,從所有語言。我不喜歡取決於Microsoft.VisualBasic.dll,當我爲.NET開發時 - 我總是比較喜歡System。*。
然後,它總是有限的。我發現VB開發人員在他們的應用程序中遇到困難,因爲他們無法想象您可以在System命名空間中使用某些東西。這當然不是我的命名空間本身的問題。
愛我的!任何能夠幫助我更快完成工作的東西,併爲我不必寫的解決方案提供代碼,效果會更好!
我不用它了很多。
我正在考慮爲VB.NET構建一個框架,並使用My命名空間將它插入到VB中似乎是一個合理的想法。是嗎?
如果它適合,通過各種手段,使用它。由於您沒有提供關於您的框架的更多信息,所以很難說。我不會把通用的東西放到My
命名空間中(比如My.Computer
的東西),因爲放在那裏並沒有什麼好處。但是,以應用程序爲中心的助手很適合。
我已經在我的VB.NET項目中使用了My,並且我不覺得內疚。我主要是一個C#人,但直到我將我的公司轉換到C#之前,我們是一家VB商店。在我看來,My命名空間是一個很好的語法糖。正如我並不尷尬地使用C#的合併操作符和其他糖,我也不會爲使用VB的糖而感到尷尬。 (在某種程度上,我不會使用.NET仍然公開的經典VB函數。)
也就是說,從來沒有把任何東西放在該命名空間。它是微軟的命名空間,就像你不會在系統和微軟下面放置任何東西一樣,不要把任何東西放在My下面。這會在後面引起混淆 - 如果不適用於您,則適用於維護您的代碼的其他人。爲您自己的代碼創建您自己的名稱空間。
我在VB.NET編程時經常使用My.Settings和My.Computer。我特別喜歡My.Settings作爲使用ConfigurationManager的替代方案。AppSettings何時適用。
我同意約翰魯迪關於我的使用。它是使生命更具可讀性的語法糖。
你也可以在C#中使用它,儘管並不是很多C#開發者似乎都在使用它。 – 2008-10-12 12:50:55
這裏是感興趣的鏈接:http://msdn.microsoft.com/en-us/library/ms173136.aspx – 2008-10-12 12:53:45