انواع کلاس ها در Csharp

پنجشنبه 2 خرداد 1392

انواع کلاس ها در Csharp <br/> کلاس Abstract - کلاس Sealed - کلاس Partial - کلاس Static

کلاس Abstract

زمانی استفاده می شود که کلاس مورد نظر فقط به عنوان کلاس پایه برای چند کلاس دیگر در نظر گرفته می شود. شما نمی توانید از این کلاس با استفاده از کلمه new نمونه سازی کنید و از متدها یا مشخصات آن به صورت مستقیم استفاده کنید. در واقع کار یک کلاس abstract تعریف قراردادی است که کلاس های مشتق شده از آن ملزم به رعایتش هستند. اما این حرف به این معنی نیست که کار یک کلاس abstract شبیه اینترفیس ها باشد. برخلاف اینترفیس ها، در کلاس های abstract می توان پیاده سازی متدها و پراپرتی ها را داشته باشیم و اجازه دهیم کلاس های مشتق شده رفتارهای آن را تغییر دهند. از کلمه asbtract در کنار متدها و پراپرتی هایی استفاده کنید که پیاده سازی آن ها در کلاس انجام نشده و قرار است در کلاس های مشتق شده پیاده سازی شوند.

کلاس Sealed

هیچ کلاسی را نمی توانید از کلاسی که با کلمه sealed مزین شده مشتق کنید. در واقع این کلمه نشان دهنده این است که ارث بری برای این کلاس ممنوع است. مواقعی که می خواهید کسی کلاس ساخته شده توسط شما را گسترش ندهد از این کلمه کلیدی استفاده کنید. اگر سعی کنید از کلاس های sealed ارث بری کنید با خطای کامپایلر مواجه خواهید شد.

کلاس Partial

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

کلاس Static

کلاس های استاتیک بهترین انتخاب برای ارائه سرویس های utility و helper برای انجام کارهایی است که به دیگر موجودیت های پروژه وابستگی ندارند. مثل ایجاد یک کلاس برای ارائه سرویس های رمزنگاری رمز عبور یا تبدیل تاریخ. از کلاس های استاتیک نمی توان نمونه سازی یا ارث بری کرد. ساخته می شوند تا با شروع برنامه در حافظه بارگذاری شوند و یک سرویس عمومی به کل برنامه در طول عمرش ارائه کنند. زمانی که یک کلاس به عنوان static اعلام می شود، باید تمامی متدهای آن نیز به صورت استاتیک تعریف شوند. حتی سازنده کلاس هم باید به صورت استاتیک تعریف شود. ران تایم دات نت گارانتی می کند که فقط یک نمونه از کلاس شما در حافظه خواهد ساخت و وقتی به آن نیاز دارید، حتمآً یک نمونه در اختیار شما قرار خواهد داد.

ایمان مدائنی

نویسنده 1299 مقاله در برنامه نویسان
  • C#.net
  • 3k بازدید
  • 0 تشکر

کاربرانی که از نویسنده این مقاله تشکر کرده اند

تاکنون هیچ کاربری از این پست تشکر نکرده است

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید