进口:您,不应该,语法和最佳实践

时间:2012-03-27 14:35:44

标签: vb.net namespaces import

只是想知道导入名称空间的推荐做法是什么。您是否总是更好地导入名称空间,如fisrt代码片段,或者您最好使用代码内联键入完整的命名空间。

我喜欢这两种方法;第一个是更整洁,占用更少的代码,第二个可以准确地识别您访问某些逻辑的位置,从而可以在查看代码时提供一些清晰度。只是想知道是否有任何利弊,或者这只是个人偏好,目前我使用的是一个组合,但希望保持一致。

Imports Core.Tech
Public SomeClass
  Public Function New()
    Return TechMethods.SomeTechFunction()
  End Function
End Class


Public SomeClass
  Public Function New()
    Return Core.Tech.TechMethods.SomeTechFunction()
  End Function
End Class

2 个答案:

答案 0 :(得分:2)

关于Imports,您应该考虑的另一个问题是,是否会有多个具有相同名称的类(或两个方法和类)。

例如,System.TimersSystem.ThreadingSystem.Windows.Forms命名空间中有三个不同的计时器。如果您想在WinForms应用程序中使用前两个计时器之一,您可能希望明确提及命名空间或创建别名。

'without imports
Dim timer As System.Threading.Timer

'imports
Imports System
Dim timer As Threading.Timer

'alias
Imports ThreadingTimer = System.Threading.Timer
Dim timer As ThreadingTimer

答案 1 :(得分:1)

这主要是风格问题,但.Net中的主要模式是利用Import语句。不使用Import语句会导致代码中出现不必要的冗长。特别是当你考虑一些.Net命名空间的超长名称时。

例如

Dim map As New System.Collections.Generic.Dictionary(Of System.Int32, System.String)
' vs ... 
Dim map As New Dictionary(Of Int32, String)

正如我所提到的,这主要是风格问题,但在某些情况下这很重要。最重要的是使用扩展方法。如果不使用任何Import语句,则此功能的用处受到严格限制,因为它会将其限制为当前命名空间中定义的扩展方法(再见LINQ)。