从外部.vb文件导入/调用类vb.net

时间:2018-08-08 19:53:43

标签: vb.net function file split partial-classes

我有一个很大的VB.net代码,我正尝试将其拆分为不同的文件。我想创建一个包含不同功能的外部文件。我已经阅读了有关部分类文件的信息,但它对我不起作用。是否可以选择调用/导入vb.net文件并按照以下示例进行操作?

示例


Form1.vb


' Imports Functions.vb (How can I call the file containing the class?)

Public Class Form1

Dim a,b,y As Double
Dim calculate As New MyFunctions

a=1
b=1

y=calculate.sum(a,b)

End Class

Functions.vb


Partial Class MyFunctions

Public Function sum(a As Double, b As Double) As Double

     return a+b

End Function

End Class

2 个答案:

答案 0 :(得分:0)

如果您希望所有代码都可以使用所有功能,只需创建一个包含这些功能的模块即可。

如果只想将form1类拆分为单独的文件,则form1文件应包含类定义..

Partial Public Class Form1

要为要分离的位创建一个新文件,请创建一个新的类文件,并将默认定义更改为上述内容。

请注意,您可能还需要为每个文件添加Imports行。

在我的旧项目中,我只有一个表单程序,但代码却分成了几个文件,例如ExcelFileHandling.vb,EmailHandling.vb等。它们实际上都是Form1的部分定义。轻松自在:-)

答案 1 :(得分:0)

当您不想完全限定类的命名空间时,可以使用Imports语句。如果另一个类与引用它的类在同一名称空间中,则无需使用Imports。 请注意,示例代码具有应在方法中而不是在类主体中存在的功能。

textarea {
  border: none;
  overflow: hidden;
  margin-bottom: 10px;
  padding: 0;
  margin: 0 auto;
  width: 90%;
  min-height: 28px;
  resize: none;
  height: 37.5px;
  text-align: center;
  font-weight: 700;
  font-size: 18px;
  background: transparent;
 }

两个类都在同一个命名空间中的示例:

'RootNamespace = Right click on project file and choose properties.  You'll see it defined there.
Imports RootNamespace.SomeOtherNamespace

Namespace SomeNamespace

    Public Class Form 1

        Public Sub SomeMethod()

            Dim objMyFunctions As New MyFunctions()
            'If no Imports is used: As New SomeOtherNamespace.MyFunctions()

        End Sub

    End Class

End Namespace

Namespace SomeOtherNamespace

    Public Class MyFunctions

    End Class

End Namespace