“我应该使用什么?”;我的";VB.NET中的命名空间?

“我应该使用什么?”;我的";VB.NET中的命名空间?,vb.net,Vb.net,我正在考虑为VB.NET构建一个框架,使用My命名空间将其插入VB似乎是一个合理的想法。“My”用于什么?我主要使用C#和Boo,但当我使用VB.NET时,我经常使用我的名称空间。我认为没有任何理由不简化编码。它仍然保持可读性。我只是从用户的角度使用它,我从未在其中插入任何内容。我认为我的命名空间是一些高度可靠的、平台提供的、全局帮助的机制。官方认可的捷径,真的。我可能会惊讶地看到里面有外部用户或第三方代码 因此,我鼓励vb框架定义自己的适当命名的名称空间,而不是锁定现有的My名称空间。这样的框

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

我主要使用C#和Boo,但当我使用VB.NET时,我经常使用我的名称空间。我认为没有任何理由不简化编码。它仍然保持可读性。

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

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

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

我主要使用以下类别:

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

我认为,如果您的框架的扩展适合我,那么许多VB.NET程序员都会很感激它们

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


我不建议您自己在My命名空间中添加任何内容,如果它是一个非VB框架,那么您只需将其布局得更清晰。

我们确实在一些代码中使用了它,但有些犹豫。的确,
My
通常有助于提高代码的可读性。例如,
Environment.SpecialFolder
枚举奇怪地缺少
Temp
成员,而
My.Computer.FileSystem.SpecialDirectories
有一个(
Path.GetTempPath()
也可以,但与其他特殊文件夹相比很难直观)


但是
My
只有在这种情况下才有好处,因为现有的API设计得很糟糕,而不是因为
My
本身就更好。与JAGregory一样,我强烈建议您尽可能避免扩展
My
——或任何其他类型的全局名称空间、变量等。这个想法不适合干净的OOP架构。

我从不使用我的命名空间(我是一名C#开发人员),但我的VB同事也不这么做。我发现我的成员不是必需的,因为在许多情况下,他们对我来说是违反直觉的,例如,在我看来,打开一个文件与IO(因此是System.IO.file)有关,而与我的计算机(My.computer.FileSystem)无关。他们看起来总是那么分散和纠结在一起

这只是对所有语言中已经可用的功能的重新部署。我不喜欢在为.NET开发时依赖Microsoft.VisualBasic.dll,我总是更喜欢System.*


然后,它总是有点有限。我看到VB开发人员在“我的命名空间”中找不到某些内容时,会与他们的应用程序发生冲突,因为他们无法想象您可以在系统命名空间中使用某些内容。这当然不是我的名称空间本身的问题。

爱我的名字空间!任何能帮助我更快完成工作,并为我不必编写的解决方案提供代码的东西都会更好

我不常用它

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


如果它合适,一定要用它。因为您没有提供任何关于您的框架的进一步信息,所以很难说。我不会把通用的东西放在
My
名称空间中(比如
My.Computer
东西),因为放在那里没有任何好处。但是,以应用程序为中心的帮助程序非常适合。

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

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

本文介绍了如何扩展My,最后有一节介绍了一些需要遵循的设计准则:


至于你的主要问题,在VB.NET中编写代码时,我会尽可能多地使用我的。它将许多操作简化为一行代码。

我在VB.NET项目中使用了My,对此我并不感到内疚。我基本上是一个C#人,但在我将公司转型为C#之前,我们是一家VB商店。在我看来,my名称空间是一块很好的语法糖。正如我不羞于使用C#的coalesce操作符和其他sugar一样,我也不羞于使用VB的sugar。(在某种程度上,我不会使用.NET仍然公开的经典VB函数。)


也就是说,从不在该名称空间中放入任何内容。这是微软的名称空间,就像你们不会把任何东西放在系统或微软的名字空间里一样,也不要把任何东西放在我的名字空间里。这将在以后引起混乱——如果不是为您,那么是为维护您的代码的其他人。为自己的代码创建自己的名称空间。

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

我同意约翰·鲁迪关于使用我的电脑的看法。这是语法糖