лучше вызвать функцию inBuilt VBA с или без ее класса? - PullRequest
1 голос
/ 04 февраля 2011

Некоторые функции inBuilt в Vba могут вызываться с классом или без него. Какой из них лучше использовать?

При вызове Sub / Function

vba.Format(date,"yy-MM-dd")
'or
Format(date,"yy-MM-dd")

Также при измерении переменной класс может использоваться или не использоваться. В таком случае, что будет лучше?

Dim xmlDoc As MSXML2.DOMDocument60
'or
Dim xmlDoc As DOMDocument60

Я склонен использовать класс и имя на тот случай, если кто-то определил функцию / Sub / тип, которая может вызвать конфликты. Но как насчет производительности? При наличии большого количества кодов и процедур может ли один или другой влиять на производительность / скорость? Есть ли еще какие-то аспекты, которые следует учитывать при принятии решения, использовать одну форму или другую?

1 Ответ

5 голосов
/ 04 февраля 2011

Если я правильно вас понимаю и если мое понимание VBA верно, то с точки зрения производительности не имеет значения, квалифицируете ли вы свойство или метод с префиксом библиотеки. Я не думаю, что необходимо квалифицировать объекты, на которые есть ссылки в библиотеке vba (если вы действительно работаете в среде vba, в отличие от .net, используя interop), но когда вы устанавливаете внешние ссылки (такие как MSXML2 или Сценариев), было бы полезно полностью квалифицировать ссылку на функцию для ясности.

Использование полного имени может улучшить ясность (в некоторых случаях). Через год, когда кто-то еще будет поддерживать ваш код, он может с уверенностью признать, что определенные функции определены в указанной библиотеке (например, MSXML2). Кроме того, в тех случаях, когда указанная библиотека содержит функцию с тем же именем, что и библиотека vba, или другая библиотека, установленная в качестве ссылки, вам необходимо указать имя функции.

Полностью квалифицирующие имена функций из библиотек, на которые ссылаются, вероятно, является хорошей практикой. В то время как библиотека vba ТАКЖЕ установлена ​​как ссылка из приложения vba, я полагаю, что это единственная библиотека, которую НЕ НУЖНО квалифицировать.

Обратите внимание, что использование полностью определенных имен Означает некоторую дополнительную типизацию. Поскольку ваше приложение написано на vba, использование vba.Function будет излишним. Но для библиотек, на которые ссылаются, вам нужно выбирать между ясностью / удобством обслуживания и простотой ввода (я подписался на школу, в которой написано «напишите код таким образом, чтобы он был полезен следующему человеку, который должен с ним справиться», прежде чем его делать). «проще» для себя написать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...