شاید تاکنون برای شما اتفاق افتاده باشد که می خواهید متدی را به کلاسی اضافه کنید اما با مشکلات زیر مواجه هستید :
1-به سورس کلاس دسترسی ندارید ، سورس کلاس در اختیار شما نیست .
2-کلاس شما اجازه ارث بری ندارد sealed است ، شما نمی توانید کلاس دیگری ایجاد کنید و از آن ارث بری کنید
اما شما نیاز مبرم دارید به اینکه به کلاس مورد نظرتون متدی را اضافه کنید ، خوشبختانه از سی شارپ 3 ، متدهای توسعه یافته Extension Methods مشکل فوق را براحتی حل کرده است .
اکنون برای بهتر فهمیدن مطلب به شکل زیر دقت کنید
همانطور که می بینید ما یک کلاس داریم به نام mydata این کلاس اجازه ارث بری را به هیچ کلاس دیگری نمی دهد اما حالا ما بر حسب ضرورت ما می خواهیم متدی را به آن اضافه کنیم ، برای اینکار حتما باید رویه زیر را انجام دهیم .
1-ابتدا یک کلاس استاتیک تعریف می کنیم تاکید می شود که حتما کلاس ما استاتیک باشد مانند کلاس مثال بالا ExtendMyData
2-متدی را تعریف می کنیم که این متد ، اولا باید حتما استاتیک باشد و ثانیا حتما اولین پارامتر آن از نوع this باشد و بعد از کلمه کلیدی this نام کلاس ذکر شود .
اکنون متد ما آماده است هر جا لازم بود می توانیم براحتی با تعریف متغیری از نوع کلاس mydata براحتی متد بالا را فراخوانی کنیم .
نکته آخر ، فراموش نکنید که کلاس شما و کلاس متد توسعه یافته باید در یک فضای نام NameSpace باشند مانند تصویر زیر که ساختار را کاملا نشان می دهد .
برگرفته از کتاب Illustrated C# 2008 از انتشارات apress
سلام
حرف های شما هم درسته...و حق با مدیران و اینجور افراد هست!!
به ظنر من،فقط کسانی باید بهشون ازادی داده بشه که لیاقتش رو داشته باشن!!!
کسانی که کارشون رو با تمرکز،و دقیق و سر وقت تموم کنن...
متاسافنه گاهی کار افراد سرگرمی مطلقه!!یا نیم ساعت با با خواهر زنشون در مورد خرید خونه مشور میکنن!!!
یا برادر زادشون رو راهنمایی میکنن که پروژه اش رو چجوری بنویسه و تحویل بده!!!