VB 6属性不保留值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB 6属性不保留值相关的知识,希望对你有一定的参考价值。

我在名为clsProperties的类模块中创建了一个属性:

Dim blnProduction As Boolean

Public Property Get IsProduction() As Boolean
  IsProduction = blnProduction
End Property

Public Property Let IsProduction(ByVal vNewValue As Boolean)
    blnProduction = vNewValue
End Property

然后我从表单中调用Let语句:

Private objPropertiesAs New clsProperties

'Determine if we're in production
    If (Environ("computername")) = "WS0006" Then
      objPropertiesAs.IsProduction = True
    Else
      objPropertiesAs.IsProduction = False
    End If

我使用“WS006”测试代码,IsProduction将等于True。但是,当我尝试访问get in clsProperties时,IsProduction等于False。

If IsProduction Then
      Debug.Print "Prod"
    Else
      Debug.Print "Dev"
    End If

请帮忙!

答案

您已正确设置clsProperties模块。但是发布的其余代码存在一些问题(因为它不会编译,因此您没有剪切和粘贴实际代码)。这是一个修复:

Private objProperties As New clsProperties

objPropertiesAs.IsProduction = (Environ("computername") = "WS0006") 
Debug.Print Iif (objProperties.IsProduction, "Prod", "Dev")

我做了一些事情来使你的代码更简洁。我的代码与您的代码之间唯一的实质区别在于,当您执行Get时,您的代码不会引用与IsProduction属性关联的对象。我不知道你为什么没有得到“Object Required”错误,但也许你的代码中有一个On Error Resume Next

以上是关于VB 6属性不保留值的主要内容,如果未能解决你的问题,请参考以下文章

Android - 保留片段?

vb.net中textbox的size属性值无法赋值

Xcode 属性不保留值

iOS CLLocation 属性不保留值

在带有 LINQ to XML 的 VB.NET 中,where 子句在属性值和字符串之间设置不区分大小写的比较

VB中 BUTTON控件的TAG属性是干啥用的?