
با همه این حرفها با ارائهی Extension Methodها در C# 2008 روزنه امیدی برای رفع این مشکل باز شد (نظر شخصی من). با کمک Extension Methodها میتوان تعدادی متود استاتیک دلخواه را در یک کلاس کمکی ایجاد کرده و آنها را به فهرست متودهای یک کلاس دیگر اضافه کرد بدون آن که مجبور به دستکاری کلاس اصلی شویم. مثلا فرض کنید کلاس اصلی شما (u1) صرفاً دارای دو متود m1() و m2() باشد. حال میتوان در کلاس کمکی (h1) متود s1() را طوری تعریف کرد که متود s1() به کلاس u1() اضافه شود. یعنی کلاس u1 از دید کاربر دارای سه متود m1() و m2() و s1() باشد. به این ترتیب برای رفع مشکل فوقالذکر میتوان یک سری Extension Methods ایجاد کرد که متودهای به روز رسانی اطلاعات دیتابیسی و متودهای پردازش اطلاعات را به کلاسهای Business Entity اضافه کند.
یکی دیگر از کاربردهای جذاب Extension Methodها خواناسازی کد از طریق افزودن متودهای مورد نظر شما به کلاسهای پایه داتنت است. مثلاً فرض کنید یک متود طولانی به اسم MyClass.Instance.ExceptionLogger.GetLongMessage() دارید. این متود یک آبجکت از نوع System.Exception گرفته و پیغامهای خودش و همه Inner Exceptionهای داخلی آن را برمیگرداند. حال با کمک یک Extension Method ساده میتوان این قابلیت را با یک اسم کوتاهتر مثل GetLongMessage() به کلاس System.Exception افزود. یعنی از این به بعد در برخورد با یک آبجکت از نوع System.Exception مثل ex میتوان با استفاده از کد ex.GetLongMessage() متود اصلی MyClass.Instance.ExceptionLogger.GetLongMessage() را بدون تایپ اسم طولانی آن صدا زد.
در همین راستا خواندن مطالب زیر نیز توصیه میشود:
۱- وبلاگ مهدی ولیخانی: معرفی “Extension Method” ها در C# 3.0
۲- انجمن برنامهنویس: C# 2008 Language Features – Extension Methods
۳- سایت PersiaDevelopers: ويژگی های سی شارپ 3.0
۴- وبلاگ وحید نصیری: معرفی سایت ExtensionMethod.NET
دیدگاهها
با جالب بودنش موافقم ولی این مثل این می مونه که چون نمی خوایم برای مسافرت از قطار استفاده کنیم بیایم قیافه اتوبوس رو شبیه قطار کنیم. SOA واقعا راه خوبیه.
دوست عزیز بنده لینک شما را با عنوان افشار.م لینک کرده ام اگر موافق تبادل لینک هسیتد خوش حال می شوم اگر لینک بنده را با عنوان
دانلود بهترین های نرم افزار
و با آدرس
http://royansoft.com لینک کنید
متشکر
آزمایش