你在VB.NET中使用'My'命名空间吗?

时间:2008-10-12 12:48:27

标签: vb.net

VB.NET有“我的”命名空间,但有多少VB.NET开发人员实际使用它?

  • 如果你不这样做,为什么?
  • 如果您正在使用它,为什么?

我正在考虑为VB.NET构建一个框架,并使用My命名空间将其插入VB似乎是一个合理的想法。是吗?

12 个答案:

答案 0 :(得分:12)

据我所知,My的目的是成为常见但难以查找或难以使用的某些API任务的简便快捷方式。您可能不应该完全包含My下的框架。 (首先,使用你的框架的C#人可能会感到不高兴。)

相反,您应该将其设计为普通框架。完成后,列出一些人们可能想要使用框架的常见任务。看看在My下是否有任何有用的东西,特别是在有多种方法可以使用的类或方法的情况下,但它们有一两个真正常用的用法,可以用My缩写。

本文介绍了如何扩展My,最后有一节介绍了一些要遵循的设计指南:Simplify Common Tasks by Customizing the My Namespace

关于你的主要问题,在VB .NET中进行编码时,我尽可能经常使用My。它将一些操作减少到一行代码。

答案 1 :(得分:8)

我非常喜欢VB.NET中的“我的”命名空间,我总是在我的WindowsForms应用程序中使用它,因为它非常直观。

我主要使用这些类别:

  • My.Computer:主要用于文件系统和网络目的
  • My.Application:版本号,当前目录
  • My.Resources:以强类型方式访问驻留在资源文件中的应用程序所使用的资源。
  • My.Settings:非常方便

我认为,如果你的框架My的扩展适合,那么很多VB.NET程序员都会欣赏它们。

答案 2 :(得分:5)

我们在某些代码中使用它,但犹豫不决。确实,My通常有助于使代码更具可读性。例如,Environment.SpecialFolder枚举奇怪地缺少Temp成员,而My.Computer.FileSystem.SpecialDirectories有一个(Path.GetTempPath()也会这样做,但与其他特殊文件夹相比并不直观)。

My仅在这种情况下有用,因为现有的API设计得很糟糕,而不是因为My本质上更好。像JAGregory一样,我强烈建议尽可能避免扩展My - 或任何其他类型的全局命名空间,变量等。这个想法不适合干净的OOP架构。

答案 3 :(得分:3)

我从不使用My命名空间(我是C#开发人员),但我的VB同事并不是这样。我发现我的成员没有必要,因为在很多情况下,他们对我来说是违反直觉的,例如在我看来,打开一个文件与IO(因此是System.IO.File)有关,而不是与我的计算机(My.Computer.FileSystem)有关。他们似乎总是如此分散和聚集在一起。

这只是一些重新推出的功能,已经可以从所有语言中获得。当我为.NET开发时,我不喜欢依赖于Microsoft.VisualBasic.dll - 我总是喜欢System。*。

然后,它总是有限的。当他们在My命名空间中找不到某些内容时,我看到VB开发人员在使用他们的app时很困难,因为他们无法想象你可以在System命名空间中使用某些东西。那当然不是My namespace本身的问题。

答案 4 :(得分:3)

我在我的VB.NET项目中使用了My,我对此并不感到内疚。我主要是C#家伙,但在我将公司转换为C#之前,我们是一家VB商店。在我看来,My命名空间是一段很好的语法糖。就像我不尴尬地使用C#的聚结操作员和其他糖一样,我也不会因为使用VB的糖而感到尴尬。 (在某种程度上;我不会使用.NET仍然暴露的经典VB函数。)

那就是说,从不在该命名空间中放置任何内容。它是微软的命名空间,就像你不会在系统或微软下面放任何东西一样,不要在My下放任何东西。它会在以后引起混淆 - 如果不适合你,那么对于那些维护代码的人来说。为自己的代码创建自己的命名空间。

答案 5 :(得分:2)

我主要使用C#和Boo,但是当我使用VB.NET时,我经常使用My namespace。我没有看到任何不简化编码的理由。它仍然保持可读性。

答案 6 :(得分:1)

我只是从用户角度使用它,我从来没有插入任何东西。我认为My命名空间是一些高度可靠,平台提供的全局帮助机制。官方认可的捷径,真的。我可能会惊讶地看到外部用户或第三方代码。

因此,我鼓励vb框架定义自己适当命名的命名空间,而不是锁定现有的My命名空间。这样的框架不应该具有“全球性”的感觉。

答案 7 :(得分:1)

到目前为止从未使用它,尽管我从未真正研究过它。

我不建议您自己将任何内容放入My命名空间,只要像非VB框架那样将其布局就更清楚了。

答案 8 :(得分:1)

爱我的!任何可以帮助我更快地完成工作的东西,并提供我不必编写的解决方案的代码,就更好了!

答案 9 :(得分:1)

我经常在VB.NET中编程时使用My.Settings和My.Computer。我特别喜欢My.Settings作为在适当时使用ConfigurationManager.AppSettings的替代方法。

我同意John Rudy对My的使用。它是一种语法糖,使生活更具可读性。

答案 10 :(得分:0)

我不经常使用它。

答案 11 :(得分:0)

  

我正在考虑为VB.NET构建一个框架,并使用My命名空间将其插入VB似乎是一个合理的想法。是吗?

如果它适合,一定要使用它。由于您没有提供有关您的框架的任何进一步信息,因此很难说。我不会将通用内容放入My命名空间(例如My.Computer内容),因为将它放在那里并没有任何优势。但是,以应用为中心的助手能够很好地适应。