Използвах Static
променливи в миналото – локални променливи, които запазват стойността си между извикванията – но знаехте ли, че цели функции и подложки също могат да бъдат маркирани като статични?
В случай на Static Function
или Static Sub
, всеки локалната променлива в рутината се държи така, сякаш е декларирана с Static
ключова дума поотделно. Вижте следната бележка от документацията на статичните изявления:
Статично изявление и Статично ключови думи са подобни, но се използват за различни ефекти. Ако декларирате процедура с помощта на Static ключова дума (както в Static Sub CountSales ()
), пространството за съхранение за всички локални променливи в рамките на процедурата се разпределя веднъж и стойността на променливите се запазва за цялото време, докато програмата работи. За нестатичните процедури пространството за съхранение на променливи се разпределя всеки път, когато процедурата бъде извикана и освободена при излизане от процедурата. Статично операторът се използва за деклариране на специфични променливи в рамките на нестатичните процедури, за да се запази стойността им, докато програмата работи.
Честно казано, рядко използвам ключовата дума Static за отделни променливи. Мъча се да видя кога бих искал да използвам тази функция за цяла функция или под. Въпреки това е важно да се знае, че е възможно. Никога не знаете кога може да срещнете някакъв код в дивата природа, който използва тази функция...
Tip o' the Hat to Jan Karel Pieterse
Заслугата за този сочен къс информация е на Ян Карел Питерзе, MVP на Excel и шрифт на VBA знания и любопитни факти. За първи път научих, че това е опция от една от неговите публикации в LinkedIn:
Всеки ден научавате нещо ново!