محدوده متغیر در سی شارپ (Variable Scopes)

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

محدوده متغیر در سی شارپ (Variable Scopes)

scope یا محدوده متغیر در زبان سی شارپ

در هر زبان برنامه نویسی اجزای برنامه دارای یک سطح و محدوده دسترسی و همچنین طول عمر می باشند. در زبان #C نیز برای هر متغیر یک بازه یا scope و همچنین طول عمر یا lifetime تعریف شده است. در سی شارپ، scope متغیر، میزان دسترسی متغیر به بخش خاصی از برنامه را تعیین می کند. متغیرها را می توان در کلاس، متد و بلوک کد یک حلقه، شرط و غیره اعلام کرد.

سه نوع اسکوپ در سی شارپ وجود دارد.

1- محدوده سطح کلاس

2- محدوده سطح متد

3- محدوده سطح بلوک کد

محدوده سطح کلاس (Class Level Scope)

متغیر اعلام شده در یک کلاس به عنوان یک فیلد شناخته می شود. این نوع متغیر دارای یک محدوده سطح کلاس است که می تواند در هر نقطه از کلاس مانند متدهای کلاس، properties و غیره قابل دسترسی باشد.

محدوده سطح کلاس متغیر در زبان سی شارپ (Class Level Scope)

در مثال بالا، کلاس Student شامل دو متغیر کلاس (a.k.a. fields) به نام های _firstName و _lastName است. این فیلدها در هر نقطه ای از کلاس قابل دسترسی هستند، یعنی در هر متد و property غیر ایستاتیک.

متغیرهای سطح کلاس نیز می توانند خارج از کلاس با استفاده از اشیاء کلاس بسته به تعیین کننده های سطح دسترسی، دسترسی پیدا کنند. متغیرهای نوع استاتیک کلاس فقط از طریق متدها یا property های استاتیک قابل دسترسی هستند.

محدوده سطح متد (Method Level Scope)

متغیری که در یک متد اعلام شده است دارای محدوده سطح متد است. این نوع متغیر همچنین به عنوان متغیر محلی متدی که در آن اعلان شده است، شناخته می شود و خارج از متد قابل دسترسی نیست.

هر بلوک کد تودرتو در متد می تواند به این نوع متغیر دسترسی داشته باشد. نمی توان آن را دو بار با یک نام در یک محدوده اعلام کرد.

دامنه متغیر محلی با اتمام اجرای متد به پایان می رسد.

مثال زیر محدوده سطح متد را نشان می دهد:

محدوده سطح متد متغیر در زبان سی شارپ (Method Level Scope)

در مثال بالا، متد ()Main فقط می تواند به متغیرهای اعلام شده در متد ()Main دسترسی داشته باشد اما به متغیرهای متدهای دیگر دسترسی ندارد. به همین ترتیب، متد ()Process نمی تواند به متغیرهای اعلام شده در ()Main یا هر متد دیگری دسترسی داشته باشد.

محدوده سطح بلوک کد (Code-Block Level Scope)

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

محدوده سطح بلوک کد متغیر در سی شارپ (Code-Block Level Scope)

در مثال بالا، یک متغیر i در یک حلقه for اعلام شد. بنابراین، فقط در بلوک حلقه for قابل دسترسی است و در خارج از حلقه نمی توان به آن دسترسی داشت. به همین ترتیب، x در بلوک if اعلام می شود، بنابراین فقط در آن بلوک قابل دسترسی است اما خارج از آن دسترسی امکان پذیر نیست.

یک متغیر باید خارج از بلوک کد اعلام شود تا برای کدهای خارجی قابل دسترسی باشد.

محدوده یا scope متغیر محدوده متغیر در سطح کلاس محدوده متغیر در سطح متد محدوده متغیر در سطح بلوک کد آموزش سی شارپ

مقالات این دسته بندی