متدهای توسعه

Extention Methods (متدهای توسعه) در زبان سی شارپ، برنامه‌نویس را قادر می‌سازند تا بدون ساختن یک نوع داده‌ای مشتق شده‌ی جدید (driven type) یا کامپایل مجدد یا هرگونه دستکاری در نوع داده‌ای اصلی، متدهایی به آن نوع داده‌ای اضافه نماید. متدهای توسعه گونه‌ی خاصی از متدهای استاتیک هستند، اما شبیه متدهای غیراستاتیک (instance method) متعلق به «نوع داده‌ای توسعه‌یافته» صدا زده می‌شوند. در کدنویسی به زبان سی شارپ یا ویژوال بیسیک، تفاوت آشکاری بین فراخوانی یک متد توسعه و متدی که واقعاً درون یک نوع داده‌ای تعریف شده‌است، وجود ندارد.

رایجترین متدهای توسعه اپراتورهای کوئری‌های استاندارد LINQ هستند که عملکردهایی را به تایپ‌های IEnumerableهای موجود (چه به صورت آبجکتی و چه جنریک) می‌افزاید.

مثال:

class ExtensionMethods2    
{

    static void Main()
    {            
        int[] ints = { 10, 45, 15, 39, 21, 26 };
        var result = ints.OrderBy(g => g);
        foreach (var i in result)
        {
            System.Console.Write(i + " ");
        }           
    }        
}
//Output: 10 15 21 26 39 45

منابع 

برنامه‌نویسی شیءگرا
نرم‌افزار
ویژوال استودیو
شگرد (برنامه‌نویسی رایانه‌ای)