Public Property Get ConnString() As String
    ConnString = m_strConnectionString370811780928206
End Property
Public Property Let ConnString(ByVal NewValue As String)
    m_strConnectionString = NewValue
End Property
这种属性调用是什么意思?这个一般是在什么情况下调用?不知道这种调用如何使用?

解决方案 »

  1.   

    手工设计自定义类分以下四步: ---- 第一步、设计类的属性或属性过程(Property) ---- 在VB 6.0中有两种类型的属性,即用向类模块中添加Public变量的方法定义的一般属性,和用向类模块中添加Property GET/LET/SET过程的方法定义的属性过程,一般使用属性过程。属性过程分只读(Property GET)、只写(Property LET/SET)、读写(Property GET和LET/SET)属性过程三种,SET用于定义对象类型属性过程,而LET用于定义非对象类型属性过程。GET/LET/SET的含义是:当读取/使用(即Access存取)该属性值时,执行Property Get中的代码;当写入/修改(即Assign指派)该属性值时,执行Property Let或Set中的代码。因为在存取或指派属性值时能执行一段代码,我们就可以在属性过程中增加许多代码(如检验代码),这正是属性过程的优点。 ---- 例如:下面代码定义了两个属性CurVolume和PreviousVolume Option Explicit
    Public PreviousVolume As Integer 
     '定义了属性PreviousVolume
    '下述代码定义属性过程CurVolume
    Dim mVolume As Integer
    '为属性CurVolume定义临时存贮区
    Public Property Get CurVolume() As Integer 
     '读属性CurVolume
    CurVolume = mVolume
    End Property
    Public Property Let CurVolume(ByVal vNewValue As Integer) 
       '写属性CurVolume
    If vNewValue < 0 Then
         MsgBox ("电压值为负,无法写入!")
    Else
         mVolume = vNewValue
    End If
    End Property---- 关于属性过程有几点说明: 读写属性过程的Property GET名称和LET/SET名称必须相同,且Property GET的参数个数比LET/SET的参数个数少一个,但Property GET的类型和LET/SET的最后一个参数的类型相同。例如:下例定义了一个数组属性mintNa(0 TO 99)
    Option Explicit
    Private mintN As Integer
    Private mintNa(100) As String
    Public Property Get NumberOfTeeth
    (ByVal Newvalue As Integer) As String
        NumberOfTeeth = mintNa(Newvalue)
    End Property
    Public Property Let NumberOfTeeth(ByVal Newvalue As
    Integer, ByVal x As String)
        mintNa(Newvalue) = x
    End Property由于窗体为类,故可以为窗体添加属性过程。 属性过程的作用域有三种:
    ---- Private:本类模块中有效 ---- Public:本类模块和其他模块中均有效 ---- Friend:主要用于Active X部件设计。对本工程中而言,相当于Public;对其他工程/应用而言,相当于Private ---- 第二步、设计类的方法(Method) ---- 向类模块中添加Sub 或 Function 过程即可。例如:下例定义了一个公用方法 Public Sub VolumeCheck()
        If CurVolume < 200 Or CurVolume > 240 Then
            MsgBox ("引发事件VolumeWarn")
            RaiseEvent VolumeWarn
        End If
    End Sub
      

  2.   

    这种方法可以用在各种类模块中(窗体、Class都可以)Public Property Get ConnString() As String
        ConnString = m_strConnectionString370811780928206
    End PropertyPublic Property Let ConnString(ByVal NewValue As String)
        m_strConnectionString = NewValue
    End PropertyProperty Get是输出ConnString这个属性的值,而 Property Let 就是得到ConnString的新值,所以后面的参数是一个NewValue。比如这段代码在一个Class1的类模块中
    那么我们在一个窗体中就这样调用Dim ctest as new class1   '声明一个实例
    ctest.ConnString="你好"   '设置属性
    这样就会调用Class1中的 Property Let ,"你好"就做为newvlaue的实参赋给m_strConnectionString这个类变量
    me.caption=ctest.ConnString则会调用Property Get,把m_strConnectionString这个值再输出,那么我们就可以在窗体的标题上看到我们刚才赋的值“ 你好”了。顺便说一句,ConnString = m_strConnectionString370811780928206后面这个变量是写错了吧
      

  3.   

    类模块里定义类的属性写法,get 为读 let为写,定义了一个属性 ConnString,它为字符型在使用类的时候就可以这样 :object.ConnString = "………"   对属性赋值
    {
    调用
    Public Property Let ConnString(ByVal NewValue As String)
        m_strConnectionString = NewValue
    End Property
    }tStr = object.ConnString       获取属性值
    {
    调用
    Public Property Get ConnString() As String
        ConnString = m_strConnectionString370811780928206
    End Property
    }
      

  4.   

    get 获取,let设置其它的楼上的各位说的都很详细了。
      

  5.   

    一个类就是一个对象模板,我们平常用的窗体其实也是一种类,只不过它的实例化简直太方便了,所以常常被忽略,老实说类模块的使用和窗体基本没有什么区别,只不过窗体还有automation支持,可以放控件,很方便的支持事件,类模块因为没有UI,所以无法使用控件,事件的使用也比较麻烦,但是它作为一个轻量级的重用模块还是很不错的
      

  6.   

    ---- 第三步、设计类的事件(Event) ---- 在VB6中,设计和使用类模块中的自定义事件很特殊,不易理解。具体而言,向类模块中添加自定义事件有三步: ---- (1)在类模块的声明部分,用Public Event 定义一个事件,事件可以有参数。例如,下例定义了两个事件: Option Explicit
    Public Event VolumeWarn()
    Public Event PercentDone(ByVal pERcent As
     Integer, ByRef Cancel As Boolean)---- (2)在该类模块的某一个模块中,用Raise Event引发该事件。例如,公用模块VolumeCheck引发事件VolumeWarn(如果属性CurVolume之值在200~240V范围之外则引发该事件): Public Sub VolumeCheck()
        If CurVolume < 200 Or CurVolume > 240 Then
            MsgBox ("引发事件VolumeWarn")
            RaiseEvent VolumeWarn
        End If
    End Sub---- 如果该事件被引发,那么将执行为该事件编写的事件代码。问题是:事件代码在哪儿编写?不是在该类模块中编写,而是在事件源(引发该事件的对象)中编写,在事件源的声明部分用WITHEVENT声明该类。 ---- (3)在事件源中编写事件代码。例如,在项目中的Test窗体中引发该事件(即Test为事件源),那么: 首先在Test窗体的声明部分用WITHEVENT声明该类(Private WithEvents xVolume As ClsVolumeCheck),代码编辑窗口的左边将出现该WITHEVENT变量xVolume 然后在代码编辑窗口的左边选择WITHEVENT变量,在右边选择VolumeWarn模块,于是产生一个空模块(如下图): http://www.pcworld.com.cn/99/script/9907/pics/072601b-1.gif在右边的VolumeWarn模块中为该事件编写的事件代码:
    Private Sub xVolume_VolumeWarn()
            MsgBox ("电压不正常!")     '处理电压代码
      ' ..............
    End Sub---- 从上可以发现,不同的事件源所编写的自定义事件代码可以不相同。如何使用事件将在后面讲述。 ---- 第四步、编写类的Initalize和Terminate事件代码 ---- 为该类编写初始化和中断事件。 
     2.2 自定义类的使用 ---- 使用自定义类分四步: ---- 第一步、在适当的模块中(如通用)声明类变量。若类中有自定义事件,则使用用WITHEVENT声明该类,并为自定义事件编写事件代码(如前述的设计类的事件的第(3)步)。例如: Private WithEvents xVolume  As ClsVolumeCheck
    Private yVolume  As cls多态接口   
    Private zVolume  As cls抽象类---- 第二步、在适当的模块中(如Form_Load模块)对类变量赋值。例如: Private Sub Form_Load()
            Set xVolume = New ClsVolumeCheck
    End Sub---- 第三步、在适当的模块中(如Form_Load模块)使用类的Public或Friend属性、方法。例如: Private Sub Command1_Click()
    xVolume.CurVolume = Text1.Text  
     '对xVolume的CurVolume属性赋值
    Call xVolume.VolumeCheck
     '调用xVolume的VolumeCheck过程
    End Sub---- 由于ClsVolumeCheck类中的VolumeCheck过程中有RaiseEvent VolumeWarn语句,故Call xVolume.VolumeCheck时可能引发事件VolumeWarn。当200 >Text1.Text >240时,将引发事件VolumeWarn,并执行在本窗体中为该类编写的事件代码: Private Sub xVolume_VolumeWarn()
            MsgBox ("电压不正常!") 
       '处理电压代码
    End Sub---- 第四步、释放类对象变量。这一点非常重要,当不用类对象变量时一定要释放它,以释放内存资源。例如: Private Sub Form_QueryUnload(Cancel As Integer,
     UnloadMode As Integer)
    Set xVolume = Nothing
    End Sub