只是想知道导入名称空间的推荐做法是什么。您是否总是更好地导入名称空间,如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
答案 0 :(得分:2)
关于Imports
,您应该考虑的另一个问题是,是否会有多个具有相同名称的类(或两个方法和类)。
例如,System.Timers
,System.Threading
和System.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)。