عبارت Static در ویژوال بیسیک

با نحوه ی تعریف متغیرها در ویژوال بیسیک آشنا شدیم، یاد گرفتیم که در حوزه های اعتبار (Scope of Variables) متفاوت میتوانیم از عبارات Dim، Public و Private برای توصیف متغیرها در ماکرو نویسی در اکسل استفاده نماییم. عبارت Staticدر ویژوال بیسیک هم مانند دیگر عبارات ذکر شده به منظور توصیف متغیرها در کدهای ویژوال بیسیک مورد استفاده قرار میگیرد. علاوه بر این، Syntax استفاده از عبارت Static همانند Dim، Public و Private میباشد و توفیری ندارد.

توصیه میشود حتماً پیش از خواندن این مقاله روش های توصیف متغیر در ویژوال بیسیک و حوزه ی اعتبار متغیرها را یاد بگیرید.

عبارت Static در ویژوال بیسیک

کاربرد عبارت Static در ویژوال بیسیک

اگر عبارت Static در ویژوال بیسیک به منظور Declare کردن متغیرها در سطح پروسیژر (Procedure-Level) استفاده شود، متغیرها مقدار خود را تا زمانی که کدها در حال اجرا هستند (ماژول در بردارنده پروسیژر در حال اجرا میباشد) حفظ میکنند. میتوان اینگونه بیان کرد که اگر عبارت Static را برای Declare کردن متغیرها در سطح پروسیژر استفاده نماییم حوزه اعتبار متغیرها تغییری نمیکند ولی Life-Time آنها که در حالت عادی تا پایان اجرای پروسیژر بود مشابه Life-Time یک متغیر Module-Level میشود، یعنی تا زمانی که ماژول دربردارنده ی پروسیژر در حال اجرای کد میباشد متغیر مورد نظر مقدار خود را حفظ خواهد کرد.

کدهای زیر مثالی از کاربرد Static Statement را در ماکرونویسی اکسل نشان میدهند، اجرای این کدها شما را در درک بهتر مطلب کمک خواهد کرد:

یکی از کاربرد های متغیرهای استاتیک شمارش تعداد دفعات اجرای یک پروسیژر میباشد، به عنوان تمرین کدی بنویسید که این کار را انجام دهد.

کلمه کلیدی Static در ویژوال بیسیک

عبارت Static در ویژوال بیسیک (State Statement) برای Declare کردن متغیرها به صورتی که در بالا توضیح داده شد استفاده میگردد. از طرفی کلمه کلیدی Static یا Static Keyword که دقیقاً همانند عبارت Static نوشته میشود کاربرد متفاوتی دارد.

همانند زیر میتوانید از کلمه ی کلیدی Static برای Declare کردن Procedure ها استفاده نمایید:

در صورتی که از کلمه ی Static استفاده نکنیم، در زمانی که پروسیژر اجرا میشود یا Call میشود، در حافظه فضایی به هر متغیر اختصاص داده میشود که با پایان اجرای Procedure آن قسمت از حافظه که به متغیر اختصاص داده شده پس گرفته میشود و داده ی آن از بین میرود.

حال اگر از کلمه ی Static برای Declare کردن پروسیژر استفاده کنیم، تمام متغیرها ی داخل آن (Procedure-Level Variables) به صورت Static در می آیند یعنی (پس از شروع اجرا یا Call شدن پروسیژر و) با پایان یافتن اجرای Procedure، حافظه ی اختصاص یافته به آنها از بین نمیرود و داده ی درون آنها حفظ میشود تا زمانی که یک بار دیگر پروسیژر اجرا شده یا Call شود. (به عبارت دیگر متغیرها مقدار خود را بین دو Call حفظ میکنند)

میتوان اینگونه بیان کرد که از عبارت Static میتوان برای استاتیک کردن متغیرهای مورد نظر در یک پروسیژر استفاده نمود و از کلمه کلیدی Static هنگام توصیف پروسیژر میتوان برای استاتیک کردن تمام متغیرهایی که در آن پروسیژر توصیف میشوند استفاده کرد.

اشتراک گذاری در شبکه های اجتماعی: share on facebook share on google plus share on linkedin

دیدگاهتان را بنویسید؟