【问题标题】:How to avoid automatic renaming of sub signature parameters in visual basic 6如何避免在visual basic 6中自动重命名子签名参数
【发布时间】:2010-03-15 16:12:33
【问题描述】:

在 Visual basic 6 中,我声明一个这样的子:

Private Sub test1(ByRef XmlFooOutput As String)
  ...
End Sub

之后,我声明了另一个 sub,如下所示:

Private Sub test2(ByRef xmlFooOutput As String)
  ...
End Sub

自动将第一种方法转换为:

Private Sub test1(ByVal xmlFooOutput As String)
   ...
End Sub

所以 XmlFooOutput 参数在 xmlFooOutput 中进行了转换。

这是一个非常危险的特性,因为这些方法可以映射到不同的 XSL 表示文件,这些文件通过 Xpath 读取 XML 值。 因此,当 test1 参数重命名时,绑定到 test1 方法的 XSL 会损坏,因为 Xpath 指向 XmlFooOuput,但正确的值现在在 xmlFooOutput 中。

是否可以删除这个奇怪的功能? 我正在使用 Microsoft Visual Basic 6.0 (SP6)。

这个问题有一些重复:

据我所知,没有实用的解决方案来禁用这个 Intellisense evil 功能。

【问题讨论】:

  • 我无法在 VB6 SP5 中复制此行为。这段代码是在表单、模块还是类中?
  • 我有点困惑。 VB6 不区分大小写,因此 XmlFooOuput 与 xmlFooOuput 相同。如果你想确保变量在VB6中具有不同的名称,我相信你实际上必须有除了字符大小写之外的差异。
  • @Heather 这种行为在形式和模块上都有。没有在课堂上尝试过。 @Smoore 困惑什么?你觉得这不奇怪吗?
  • @systempuntoout 这很奇怪。如果您注意在与第一个完全相同的情况下键入 XmlFooOutput 的第二个实例,它仍然会做同样的事情吗?
  • 不,它没有。它们与第一个字母大写保持相等。

标签: ide vb6


【解决方案1】:

变量名和其他标识符的大小写对语言完全没有影响 - VB6 不区分大小写

我同意当 IDE 自动更改标识符的大小写时会很烦人。已经详细讨论了可能的解决方法in this question

【讨论】:

    【解决方案2】:

    这是 Visual Basic 的一个功能,它可能起源于 QuickBasic,正如已经指出的那样,源于名称中不区分大小写。

    我尝试了 OP 的示例,VB6 按照描述更改了test1() 的声明。

    无法移除此功能 - 您必须另寻他法。

    【讨论】:

    • 实际上,我们从 2005 年开始就遇到了这个问题。有时我们团队中的某个人检查了某个模块,修改它添加了另一个不同大小写的子,弄乱了模块的其他子。这是一个微妙而可怕的错误,可能会成为您在开发时发现的皮塔,因为重命名是在没有警告的情况下静默完成的。
    • 您需要找到解决方法:检查您的版本控制提交。在提交之前运行你的测试。最重要的是找到一种从代码中删除此要求的方法。
    猜你喜欢
    • 2011-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-12-31
    相关资源
    最近更新 更多