Как избежать автоматического переименования параметров подписи в Visual Basic 6 - PullRequest
3 голосов
/ 15 марта 2010

В Visual Basic 6 я объявляю подпрограмму следующим образом:

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

После этого я объявляю другую подпрограмму, подобную следующей:

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

Автоматически первый метод преобразуется в:

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

Таким образом, параметр XmlFooOutput преобразуется в xmlFooOutput.

Это довольно опасная функция, потому что методы, подобные этим, могут быть сопоставлены с различными файлами презентации XSL, которые читают значения XML через Xpath. Поэтому, когда параметр test1 переименовывается, XSL, связанный с методом test1, перестает работать, поскольку Xpath указывает на XmlFooOuput, но правильное значение теперь находится в xmlFooOutput.

Возможно ли удалить эту странную функцию? Я использую Microsoft Visual Basic 6.0 (SP6).

В этом вопросе есть дубликаты:

Из того, что я вижу, нет практического решения отключить эту функцию зла Intellisense.

Ответы [ 2 ]

3 голосов
/ 16 марта 2010

Регистр имен переменных и других идентификаторов не имеет никакого значения для языка - VB6 без учета регистра .

Я согласен, что это может раздражать, когда IDE автоматически изменяет регистр идентификаторов. В этом вопросе уже подробно обсуждаются возможные обходные пути .

0 голосов
/ 15 марта 2010

Это особенность Visual Basic, которая, вероятно, берет свое начало в QuickBasic, как было указано, проистекает из нечувствительности к регистру имен.

Я попробовал пример OP, и VB6 изменяет объявление test1(), как описано.

Невозможно удалить эту функцию - вам придется найти другой способ обойти это.

...