如何访问VB6中的隐藏类变量?

如何访问VB6中的隐藏类变量?,vb6,Vb6,我在“声明”部分有这一行: Private filePath As String 下面是这样的: Public Sub Print(filePath As String) ... End Sub 在。。。第二部分,我想将参数filePath分配给模块级filePath。但我怎样才能接触到后者呢?非常感谢。为避免混淆,更改代码如何 Private mFilePath As String 将模块级变量或参数更改为print函数。Phoenie我认为,一旦在本地范围中有隐藏它的内

我在“声明”部分有这一行:

Private filePath As String
下面是这样的:

Public Sub Print(filePath As String)  
    ...  
End Sub

在。。。第二部分,我想将参数
filePath
分配给模块级
filePath
。但我怎样才能接触到后者呢?非常感谢。

为避免混淆,更改代码如何

Private mFilePath As String

将模块级变量或参数更改为
print
函数。

Phoenie我认为,一旦在本地范围中有隐藏它的内容,就没有必要查看VB6/VBA中的私有类变量(我有一个很好的旧Google搜索,但什么都没有出现)。如果希望保留命名约定而不更改现有接口,唯一的解决方法是开发一个私有函数来访问变量。e、 g

Public Sub Print(filePath As String)

    SetMyFilePath filePath

End Sub

Private Sub SetMyFilePath(ByVal passedFilePath as String)

    filePath = passedFilePath

End Sub

如果无法更改函数中参数的名称,则始终可以定义另一个函数:

Public Sub SetfilePath(m As String)
  filePath = m
End Sub
并在您的。。。代码

如果这是我要解决的问题,我会去弄清楚为什么不允许你 更改子例程中参数的名称,并对其进行更改。 显然,您可以修改您的子程序;为什么会有这样的变化
不允许?

那么您可以修改Sub,使其(如果可能)允许您将私有变量设置为局部变量……但不允许重命名任一参数?
如果你也不能执行Ira Baxter的建议…那么你的任务在VB6中是不可能的。对您施加的限制听起来不合理。

我经常这样做纯粹是因为Me变量的公共/私人区别。很遗憾,“Me”不是“this”。参数的名称不是由我定义的。我不能碰它。如果真的没有办法,我可以更改类变量的名称。然而,在这个项目中应用的命名约定并不适用于它。因此,尽管VB6使我失败,但一个小sub就可以了。你真的了解我的处境。谢谢对我来说,这似乎是一个令人讨厌的黑客行为。是否有一个原因使您没有在模块作用域的数据前面加前缀(la mFilePath)?这是一种更为普遍的做法,它的出现正是出于这个原因。只是VB6文档中建议使用这种方法编写类模块的一个主题。我不会亲自实施这个解决方案,我对沙卡尔佩什的答案投了赞成票——但我怀疑菲尼是唯一一个选择权宜之计而不是繁文缛节的人。亲爱的爱尔兰共和军,谢谢你的替补。我会这样做的。事实上,我可以建议更改参数的名称,在与高级同事讨论、修改类设计文档并确认此过程后,可以接受该名称。你知道,我只是不想惹麻烦。