سبد خرید 0

وبلاگ

تعریف ضمنی متغیرهای محلی

مطالبی که در این مقاله یاد خواهیم گرفت :

– خلاصه ای از نحوه تعریف متغیر در سی شارپ

– متغییر ضمنی چیست ؟

– تعریف متغیر ضمنی

– مقدار دهی و محدودیت های متغیرهای ضمنی

برای تعریف متغیر در زبان سی شارپ ابتدا نوع(Data Taye) آن را مشخص و بعد نام متغیر را می نویسیم :

در صورتی که بخواهیم به متغیر تعریف شده  ، #C یک مقدار پیش فرض به آن نسبت دهد به صورت زیر عمل می کنیم :

(برای int مقدار پیش فرض 0 می باشد)

با اینکه تعریف متغیرهای محلی به صورت صریح عادت خوبی می باشد اما در #C امکان تعریف متغیرها به صورت ضمنی ، توسط کلمه کلیدی var امکان پذیر می باشد .

متغییر ضمنی چیست :

 تعریفی خیلی ساده که می توان  برای متغیرهای ضمنی  بیان کرد ، نوع متغییر مشخص نمی باشد و با اولین مقدار دهی به متغیر نوع آن مشخص می شود .

در صورتی که بخواهید متغیری را بدون مشخص کردن نوع آن تعریف کنید از کلمه کلیدی var به صورت زیر استفاده می کنیم .

با این روش تعریف متغیرها در هنگام کامپایل ، کامپایلر با نگاه کردن به مقدار اولیه که به متغییر نسبت داده شده است نوع آنرا مشخص می کند .که در مثال بالا نوع myint از نوع int و mystring  از نوع string می باشد .

از طریق کاربرد روشی به نام Reflection (انعکاس) می توانیم نام نوع یک متغییر را بدست آورد :

مواردی که در هنگام تعریف متغییرهای ضمنی باید به آن توجه داشته باشید :

– در هنگام تعریف متغییر به صورت ضمنی حتما باید مقدار دهی اولیه صورت بگیرد در غیر اینصورت با خطای زیر برخورد خواهید کرد :

Error ! must assign a value

– در صورت تعریف و مقدار دهی اولیه یک متغییر ضمنی چنانچه مقدار از نوع دیگر را به آن انتساب دهید  با خطا مواجه خواهید شد .

محدودیت های متغیر های ضمنی :

 تعریف متغیرهای ضمنی فقط داخل متدها و خصوصیات کلاس ها امکان پذیر است .

 نمی توان مقادیر برگشتی متدها را از نوع ضمنی تعریف کرد .

 فیلد های کلاس ها را نمی توان به صورت ضمنی تعریف کرد .

* متغیرهای محلی که با دستور var تعریف می شوند باید در همان محل تعریف مقدار دهی اولیه بشوند و نمیتوان به متغییرهای ضمنی مقدار null نسبت داد . با نسبت دادن مقدار null کامپایلر نمی تواند نوع متغیر را مشخص کند . 

می توان مقدار یک متغیر ضمنی را برابر با یک متغیر دیگر قرار داد ، چه این متغیر به صورت ضمنی تعریف شده باشد یا نشده باشد .

از آنجایی که نوع یک متغیر همواره مشخص است می توان یک متغیر ضمنی را در صورتی که نوع آن با نوع برگشتی متد یکسان باشد برگشت داد .

* هرگز نمی توان یک متغیر تهی پذیر که به صورت ? مشخص می شود را  با روش ضمنی تعریف کرد .

به عنوان نکته آخر در مورد این بحث باید گفت که پس از انکه متغیری را به صورت ضمنی تعریف و مقداری را به آن نسبت دادید پس از آن متغیر تعریف شده مانند هر متغیر دیگری که با نوع خاص مشخص شده است تلقی می شود و انتساب هر نوع داده دیگری غیر از آنجه که در ابتدا به آن نسبت داده شده است باعث خطای زمان ترجمه خواهد شد .

اشتراک گذاری:

مطالب زیر را حتما مطالعه کنید

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

keyboard_arrow_up