بلاک یا اهرم Region
نام دوره: زبان سی شارپ مقدماتی
نویسنده: علی مقدم جاه (مدرس دوره)
بلاک یا اهرم Region چیست؟
همانطور که میدانید، یک برنامه متشکل از تعداد زیادی کدهای برنامهنویسی بوده که توسط Developer نوشته شده است؛ در پستهای مربوط به انواع روشهای کامنت گذاری در سیشارپ، به شما یاد دادیم که اگر میخواهید یک یا چند خط از کدهای شما غیرفعال شده و کامپایلر جهت اجرای برنامه از آن کدها خروجی نگیرد، میتوانید آن خطوط یا کامنت کنید تا از برنامه حذف نشوند، اما قطعا یادتان هست که کاملا اثر خود را از دست میدادند.
اما بلاک یا اهرم Region اصلا شبیه به کامنت نیست! باوجود اینکه میتوانیم به عنوان کامنت از آن استفاده کنیم، اما اصلا کدهای تحت بلاک خود را بی اثر نمیکند!
درواقع با استفاده از اهرم Region، ما کدهای خود را درصورت نیاز مرتب میکنیم!
فرض کنید در یک فایل Cs از پروژه خود، نزدیک به ۲۰۰ خط کد دارید که هر ۵۰ خط کد مربوط به انجام یک عملیات است.
درنتیجه با استفاده از اهرم Region میتوانیم این ۲۰۰ خط کد را به چهار دسته با عنوان فارسی کامنت گذاری شده تقسیم کرده و تمامی 50 خط را به یک خط تبدیل کنیم! دراینصورت تمامی آن ۵۰ خط کد کار خود را انجام میدهند و ما هر زمان که نیاز به مشاهده یا ویرایش آن کدها داشتیم، تنها کافی است تا اهرم Region را باز کنیم! پس اهرم Region تنها کدهای داخل محدوده بلاک خود را مرتب میکند.
برای تعیین محدوده بلاک اهرم Region باید در ابتدای خط مورد نظرمان عبارت Region# و در انتهای خط مورد نظر، عبارت endregion# را بنویسیم. بدینصورت تمامی کدهای بین Region# و endregion#، تبدیل به یک بلاک شده که میتوانیم با کلیک بر روی اهرم کناری باز و بستهشان کنیم.
به عنوان مثال ما میخواهیم قطعه کد زیر را تا خط آخر تبدیل به یک بلاک Region کنیم:
Console.Write("Enter your age: ");
int age = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(age*10);
درنتیجه باید ابتدا و انتهای کدها، از عبارات شروع و پایان Region استفاده کنیم:
#region
Console.Write("Enter your age: ");
int age = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(age*10);
#endregion
از مهمترین مزایا اهرم region میتوان به موارد زیر اشاره نمود:
- مرتب شدن خطوط در کدهای طولانی
- جلوگیری از بهم ریختگی کدها
اما اینجا سوال بوجود میآید که اگر تعداد اهرمهای region زیاد شود، پیدا کردن بلاک کد مورد نظر سخت میشود!
بله کاملا سوال درستی است. به همین علت میتوانیم از قابلیت کامنت گذاری در اهرم region استفاده کنیم. بدین منظور کافیست تا جلوی عبارت شروع یعنی region# به فارسی یا انگلیسی هر متنی که دوست داریم اضافه کنیم:
#region این یک کد تستی است
Console.Write("Enter your age: ");
int age = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(age*10);
#endregion
حالا اگر اهرم را ببندیم، تنها عنوان کامنت شده را مشاهده میکنیم:
این یک کد تستی است
که اگر بر روی این عنوان کامنت شده کلیک کنیم، مجددا کدها به شکل زیر باز میشوند:
#region این یک کد تستی است
Console.Write("Enter your age: ");
int age = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(age*10);
#endregion
جهت شرکت در دورههای زبان برنامه نویسی سیشارپ، از کد تخفیف heplc30 استفاده کنید.