VB.NET中Module

1. 概念

为什么会有模块的概念?

在VB中有模块和类模块的概念,所谓模块就是存放公用的一些方法(Sub)或者(Function);而类模块,相当于我们经常说的类的概念。所以在VB.NET中也就有了Module的概念,它是继承下来的。但是在VB.NET里面Module有一些新的功能

1. 模块(Module)的方法特点:这些方法自动就是静态的(或者称为共享的——VB.NET中的关键字是Shared),这些方法可以直接调用,所以Module是无法实例化,也没有必要实例化的。

2. 模块无法继承,也无法实现接口

3. 每个模块均正好有一个实例,并且无需创建此实例或将其赋给变量。模块不支持继承,也不实现接口。请注意,从类或结构是类型这一意义上说,模块并非类型 - 您无法将编程元素声明为具有模块的数据类型。

4. 在命名空间级别使用 Module。这意味着模块的声明上下文必须是源文件或命名空间,而不能是类、结构、模块、接口、过程或块。无法在一个模块或任何类型中嵌套另一个模块。

2. 和Class的区别

1. 术语。以前的 Visual Basic 版本识别两种类型的模块:类模块(.cls 文件)和标准模块(.bas 文件)。当前版本会分别调用这些类和模块。

2. 共享成员。可以控制类的成员是共享成员还是实例成员。

3. 面向对象。类是面向对象的,但模块不是。因此,只能将类实例化为对象。

3. 使用示例

模块的使用了类的使用区别其实不大,可以理解为一个不能够实例化的静态类,在里面我们可以定义一些全局变量函数。在模块中定义全局变量,入口函数Main和其他共享或私有函数方法,引用模块中定义的变量,函数方法不需要进行New实例化。

Module中创建了Main函数,程序Main()函数启动

Public Module thisModule
    Sub Main()
        Dim userName As String = InputBox("What is your name?")
        MsgBox("User name is" & userName)
    End Sub
    ' Insert variable,property,procedure,and event declarations.
End Module

在Module中创建了一些全局变量函数调用这些变量和方法的时候不用New。

Imports System
Imports System.IO

Public Module MyModule
    '定义全局变量
    '登陆的用户名密码
    Public LoginID As String
    Public LoginPwd As String

    Public Sub AddOne(ByVal n As Integer)  '这里是函数AddOne的定义
        Console.WriteLine(n + 1)
    End Sub

    '函数是有返回值的。我们写一个函数,传入一个整数,函数返回这个数的加二。例如给它3,它返回5。
    Public Function AddTwo(ByVal n As Integer) As Integer
        Return n + 2        'return后面的表达式就是这个函数要返回的东西
    End Function

End Module

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...