2008-10-12 179 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何时适用。

我同意约翰鲁迪关于我的使用。它是使生命更具可读性的语法糖。