توابع الحاقی Extension method

توابع الحاقی (Extension method) یک ویژگی جدید می باشد که در C# 3.0 اضافه شده است. Extension methodها توابع هستند که به کلاس های یا انواع داده های نوشته شده از قبل، اضافه می شوند بدون نیاز به کامپایل، وراثت یا دست کاری کد های قبلی، حتی اگر کد کلاس یا دیتا تایپ DataType در دسترس نباشد باز با استفاده از method Extension شما قادر به اضافه کردن متد های جدید هستید. Extension methodها یک سری توابع Static داخل کلاس استاتیک جدای می باشند که به نوع داده مورد نظر(که با کلمه کلیدی This مشخص میشود) اضافه میشوند.

توابع الحاقی (Extension method)

توابع الحاقی (Extension method)  یک ویژگی جدید می باشد که در C# 3.0  اضافه شده است.  Extension methodها توابع هستند که به کلاس های یا انواع داده های نوشته شده از قبل، اضافه می شوند بدون نیاز به کامپایل، وراثت یا دست کاری کد های قبلی، حتی اگر کد کلاس یا دیتا تایپ DataType در دسترس نباشد باز با استفاده از  method Extension  شما قادر به اضافه کردن متد های جدید هستید. Extension methodها یک سری توابع Static داخل کلاس استاتیک جدای می باشند که به نوع داده مورد نظر(که با کلمه کلیدی This مشخص میشود) اضافه میشوند.

بیشتر وقت ها فکر می کردم ای کاش کلاس dateTime  تابع ای داشته باشد که تاریخ شمسی را برگرداند یا اینکه یک تابع ای داشته باشد که تاریخ را فقط به صورت عدد(بدون عدد علامت "/" ) برگرداند. یا برای کلاس String متد های کمکی حذف فاصله های داخل متن باشند.

برای تعریف یک    Extension method باید موارد زیر را در نظر داشت.
1-    کلاس باید از نوع Static باشد.
2-    توابع باید .  Extension method  باید از نوع Static باشند.
3-    یک ورودی از نوع DataType مقصد داشته باشیم که با کلمه کلیدی This مشخص شده باشد
در زیر یک نمونه .  Extension method متد آمده است که یک تابع تاریخ شمسی را به شئ   datetime اضافه می کند.

using System.Globalization;

static class AddToDateTime

{

    public static string ToShamsi(this DateTime dt)

    {

        PersianCalendar pc = new PersianCalendar();

        return string.Format("{0}/{1}/{2}",

                             pc.GetYear(dt),

                             pc.GetMinute(dt),

                             pc.GetDayOfMonth(dt));

    }


لینک دانلود فایل های این پکیج


}

رحیم لطفی

رحیم لطفی

222 دانشجو
26 دوره آموزشی
مشاور و معمار ارشد نرمافزار با بیش از 15 سال تجربه تخصصی در حوزههای توسعه نرمافزار، معماری سیستمهای مقیاسپذیر و آموزش مهندسی نرمافزار حوزههای تخصصی خدمات: 🏗 طراحی و پیادهسازی معماری نرمافزار ارائه معماریهای بهینه با استفاده از جدیدترین تکنولوژیها (Microservices,, Event-Driven) استقرار زیرساختهای فنی و راهبری فنی تیمهای توسعه - پیاده سازی معماری وفریم ورک متناسب با بیزینس شما - مشاوره تخصصی معماری و توسعه تحلیل و بهینهسازی معماری سیستمهای موجود ارائه راهکارهای فنی برای چالشهای پیچیده نرمافزاری - برگزاری دورههای آموزشی سازمانی اجرای بوتکمپهای تخصصی برنامهنویسی متناسب با نیاز سازمانها آموزشهای کاربردی معماری نرمافزار -منتورینگ و برنامهریزی رشد توسعهدهندگان تدوین پلن رشد شخصی برای برنامهنویسان در تمام سطوح (Junior تا Senior) راهنمایی عملی برای ارتقای مهارتهای فنی و حرفهای
نظری وجود ندارد! شما اولین نفر باشید!
جهت ثبت نظر باید در سایت عضو شوید و یا وارد سایت شده باشید .
رایگان
  • طول دوره
    0 قسمت
  • فصل ها
    1
  • دانشجویان
    6
  • زبان
    فارسی
  • سطح آموزش
    متوسط
  • وضعیت دوره
    کامل
  • مدت زمان
    1 ساعت
  • حجم
    35M