Подтвердить что ты не робот

Что делает восклицательный знак (!) Перед ссылочной переменной объекта?

Что помещает восклицательный знак (!) перед ссылочной переменной объекта в Visual Basic 6.0?

Например, я вижу в коде следующее:

    !RelativePath.Value = mstrRelativePath

Что означает !?

4b9b3361

Ответ 1

Это почти наверняка утверждение внутри блока With:

  With blah
    !RelativePath.Value = mstrRelativePath
  End With 

который является синтаксическим сахаром для

  blah("RelativePath").Value = mstrRelativePath

который является синтаксическим сахаром для

  blah.DefaultProperty("RelativePath").Value = mstrRelativePath

где "DefaultProperty" - это свойство с оплошным нулем, которое индексируется строкой. Как свойство Fields объекта ADO Recordset.

Несколько неизбежно с сахаром, что он производит гнилые зубы. Именно по этой причине вам нужно использовать ключевое слово Установить в VB6 и VBA. Потому что без него компилятор не знает, хотите ли вы копировать ссылку на объект или значение свойства объекта по умолчанию. Исключено в vb.net.

Ответ 2

Восклицательный знак действует как оператор доступа к членству, кажется...

Операторы доступа к членству

Чтобы получить доступ к элементу типа, вы используете точка (.) или восклицательный знак (!) операторЗабастовкa >


Я беру это обратно. Это:

Восклицательный знак (!) Оператор Используйте! оператор только на классе или интерфейс как доступ к словарю оператор. Класс или интерфейс должны имеют свойство по умолчанию, которое принимает единственный аргумент String. Идентификатор сразу после! оператор становится аргументом строки для свойство по умолчанию.