`
李大伟
  • 浏览: 5141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

vb中module 和class module 的区别

阅读更多
vb的帮助文件中指出,vb有3种类型的模块:窗体模块,标准模块,类模块。  
  没一个模块都和一个文件相联系,3种模块对应着3中不同类型的文件。窗体模块存放在扩展名为frm的文件中,标准模块存放在扩展名为bas的文件中,类模块存放在扩展名为cls的文件中。  
  三类模块说明如下:  
  1。简单的程序只有一个模块,这时的程序的代码都存放在这个窗体模块中。窗体模块是大多数vb程序的基础。  
  2。对于复杂的程序可以增加窗体。为了避免重复,可以将多个窗体都要用到的共同代码集中起来,存放在一个独立的模块中,这个独立的模块成为标准模块。多个标准模块还可以构成一个模块库。在标准模块的声名的public变量和常量是在整个工程有效的全局变量和常量。  
  3。类模块是面向对象编程的基础。用户可以使用类模块创建含有属性和方法的自己的对象。窗体也是一种类模块,是一种可以显示窗体的模块,并且可以把控件拖放到窗体上。一般的类模块和标准模块都没有可见的用户界面(窗体)。  
  4。标准模块中数据的存活期和工程的存活期相同。类模块中数据的存活期和类的对的存活期相同,随着该类对象的创建而创建,随着该类对象的消失而消失。  
  5。当变量在标准模块中声名为public时,他在工程中的任何地方都是可见的(有效的)。当变量在类模块中声明为public时,在模块外访问该变量是受到限制的,只能访问那些有引用的变量。


标准模块与类模块的比较
在数据存储方式上,类不同于标准模块。标准模块的数据不可能多于一份。这意味着若程序中某个部分改动了标准模块的公共变量,随后程序的其它部分读取该变量会得到该值。
相反,类模块数据则独立存在于每个类的实例中。
应避免使类中的代码依赖于全局数据─ 即标准模块中的公共变量。一个类可能同时存在很多个实例,所有这些对象都共享部件中的全局数据。

类模块和标准模块的比较
类模块和标准模块的不同点在于存储数据方法的不同。标准模块的数据只有一个备份。这意味着标准模块中一个公共变量的值改变以后,在后面的程序中再读取该变量时,它将得到同一个值。
而类模块的数据,是相对于类实例(也就是,由类创建的每一对象)而独立存在的。
同样的,标准模块中的数据在程序作用域内存在,也就是说,它存在于程序的存活期中;而类实例中的数据只存在于对象的存活期,它随对象的创建而创建,随对象的撤消而消失。
最后,当变量在标准模块中声明为 Public 时,则它在工程中任何地方都是可见的;而类模块中的 Public 变量,只有当对象变量含有对某一类实例的引用时才能访问。

如果在类中声明 Main 过程,则必须使用 Shared 关键字。在模块中,Main 不必是 Shared。
0
0
分享到:
评论

相关推荐

    很全的vb6源代码库

    很全的vb6源代码库 ,可以作为学习参考。 Prefix Type C Class F Form T User-defined type X ActiveX control D ActiveX document P Property page E Enum I Interface class for Implements G Global ...

    vb 总是提示“类型不匹配,缺少数组或用户定义类型”

    vb中定义如下: 类模块Class1中代码如下: Dim aa() As String Public Sub setName(ByRef str() As String) aa = str End Sub Public Function getName() As String() getName = aa End Function 模块Module1...

    VB.NET VB

    可以用此做VB的实训 Public Class Form8 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim f5 As New Form5 Module1.db() conn.Open() ds....

    VB编程资源大全(英文源码 API)

    Demonstrated in the project how to use these two functions in order to raise events in a class from a module<END><br>38,ctaskmanager.zip This application contains the same basic functionality as ...

    VB.Net Programming.pdf

    Module 1: Overview of the Microsoft .NET Platform Overview..............................................................................................................1 What Is the Microsoft .NET ...

    VB编程资源大全(英文源码 控件)

    It is in a class module and can be used in either ASP or Standalone APPS. <END><br>33 , zafspinocx.zip This is a demo of a logo spinner control, which spins an icon sized image horizontally. ...

    VB编程资源大全(英文源码 数据库)

    <END><br>28 , UDL.zip This is a class that lets you create and edit UDL files<END><br>29 , qbd-dbCoder131.zip This code shows how to take data from a VB database application and place it into ...

    VB矢量图制作工具源代码

    <DIR> Class <DIR> Documentati <DIR> Export <DIR> Fonts <DIR> Form <DIR> Module <DIR> Object <DIR> Palette <DIR> Pattern <DIR> Samples <DIR> UserControl ArtDraw.exe Draw.VBP Draw.vbw MSSCCPRJ.SC

    VB编程资源大全(英文源码 控制)

    <END><br>33 , vbo_button_bas.zip This bas contains functions to manipulate Button class objects<END><br>34 , LPT_Port.zip Read/write to LPT parallel port<END><br>35 , DancingBaby.zip A ...

    This small project is for the more advanced VB users and sho

    This small project is for the more advanced VB users and shows an undocumented VB function ... Demonstrated in the project how to use these two functions in order to raise events in a class from a module

    MSDN Traning - VB.NET (VBL).pdf

    Module 1: Overview of the Microsoft .NET Platform Overview....................................................................................................1 What Is the Microsoft .NET Platform?.....

    VB编程资源大全(英文源码 其它)

    This is used to make 3D text.<END><br>27 , basMath.zip This module contains functions for various math equations. <END><br>28 , calc.zip This is a basic calculator written in Visual Basic.<END>...

    vb.net贪吃蛇游戏源码

    Module Module1 Public Enum MAP_PROPERTY MAP_EMPTY MAP_FOOD MAP_BOMB MAP_PRIZE MAP_SNAKE End Enum

    汉语Visual Basic编程软件

    老外可以用他们的母语编程,为啥咱们...比如 class Module Sub 如果 看得别扭或者 觉得十分无语 就请无视这个版 注:Vista下头一次运行 会提示错误 MoleBox Fatal Error:The Dynamic Link Library 请再运行一次即可 ...

    VB编程资源大全(英文源码 表单)

    A simple program that you can use for your desktop.<END><br>54,msgblast.zip MsgBlaster.bas is standard VB6 module, which implements a generic framework for window subclassing. The main advantage ...

    asp.net知识库

    C#中 const 和 readonly 的区别 利用自定义属性,定义枚举值的详细文本 Web标准和ASP.NET - 第一部分 XHTML介绍 在ASP.NET页面中推荐使用覆写(Override)而不是事件处理(Event Handler) 常用编码工具类,支持base...

    Programming with MS VB.NET.pdf

    Lab 4.1: Creating Class Diagrams from Use Cases...............................................33 Review...................................................................................................

    OllyDbg 1.1 增强版

    使用 LordPE 等工具在 Ollydbg 导入表中添加以下 dll 和函数即可使用增强功能,完成补丁: dll ==> OllyPath.dll 函数 ==> Set0llyPatch 注意:如果使用 PETools,可能会导致原程序无法运行。 ==================...

    个性化ODOllyDbg

    使用 LordPE 等工具在 Ollydbg 导入表中添加以下 dll 和函数即可使用增强功能,完成补丁: dll ==> OllyPath.dll 函数 ==> Set0llyPatch 注意:如果使用 PETools,可能会导致原程序无法运行。 ==================...

    Visual C++ 编程资源大全(英文源码 DLL)

    07.zip Handling VB strings (as part of an array of UDT) VB的串句柄(5KB)<END><br>8,08.zip Class for Dynamic DLL Loading 动态装入DLL的一个类(6KB)<END><br>9,pop3.zip CPop3Connection - an ...

Global site tag (gtag.js) - Google Analytics