در گذشته نمایش تاریخ شمسی در asp.net یکی از چالش های بزرگ برنامه نویسان بود، اما امروزه با وجود متد های الحاقی (Extension Method) این کار به یکی از جالب ترین کارها تبدیل شده است.
قبل از پرداختن به کدها ابتدا باید با ماهیت Extension Method یا متدهای الحاقی آشنا شویم.

Extension Method یا متد الحاقی چیست ؟

متدهای الحاقی توابعی هستند که ما می توانیم از بیرون به یک کلاس اضافه نماییم.

بعنوان مثال کلاس زیر را در نظر بگیرید:




فرض کنید به کدهای داخل کلاس دسترسی نداریم (مثلا یک فایل DLL داریم که کلاس فوق درون آن است و به داخل آن دسترسی نداریم و یا در گذشته یک پروژه نوشته ایم که کلاس فوق در آن استفاده شده است و با تغییر در ساختار کلاس ممکن است مشکلی در پروژه بوجود آید و ...)

برای اینکه بتوانیم یک تابع (متد) به کلاس بالا اضافه نماییم ، داریم :


نکات مهم در متد الحاقی بالا public بودن و استاتیک بودن تابع و کلمه کلیدی this در ورودی تابع می باشد.

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

دقت نمایید که متدهای الحاقی باید درون یک کلاس با دسترسی public و از نوع static  قرار بگیرد.

جالبی کار در اینجاست که اگر ما یک نمونه (instance) از کلاس Person بسازیم ،به راحتی به متد الحاقی GetFullName دسترسی داریم !




ملاحظه می نمایید که به روش فوق با راحتی توانستیم یک متد را به کلاس Person الحاق نماییم.


نکته دیگر دستور بالا استفاده نکردن از کانستراکتور و بهره گیری از قابلیت جدید سی شارپ می باشد که در آن می توان بدون نیاز به نوشتن کانستراکتور و پاس دادن اطلاعات در آن ، پراپرتی ها را درون دو عدد براکت { } بصورت درجا مقدار دهی نمود.

توضیح اینکه در گذشته برای هر کلاس دو عدد کانستراکتور می نوشتیم که یکی کانستراکتور خالی و دیگری کانستراکتوری بود که به تعداد پراپرتی ها مقدار می گرفت و آنها را درون پراپرتی ها ست می نمود.
امروزه دیگر نیاز به نوشتن کانستراکتور دوم نیست و بصورت بالا می توان خیلی راحت پراپرتی ها را مقدار دهی نمود.

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

نمایش تاریخ شمسی در asp.net به کمک Extension Method

برای این کار فقط کافی است یک متد به کلاس DateTime دات نت اضافه  (الحاق) نماییم :


بنابراین دیگه نیاز نیست که نگران نمایش تاریخ شمسی توی پروژه هاتون باشین.

فقط کافیه که :


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

مثلا:


ملاحظه می کنید که با کمک Entity Framework  و  Extension Method به چه سادگی توانستیم اطلاعات اشخاص را به همراه تاریخ عضویت آنها (بصورت شمسی) توی پروژمون نمایش بدیم.

موفق باشید.

نوشته شده در تاریخ جمعه 27 تیر 1393    | توسط: ح.م    | طبقه بندی: آموزش ASP.NET، آموزش Entity Framework، آموزش سی شارپ،     | نظرات()