PDA

View Full Version : آموزش: قابلیت Extension در C#



mrbm_2007
جمعه 11 دی 1394, 22:02 عصر
سلام
سی شارپ قابلیت های جالبی داره که شاید اکثر کسانی که با هاش کد میزنن اطلاع ندارد. یکی از این قابلیت ها Extension است که این امکان رو میده که به کلاس های از قبل تعریف شده متدهای جدید رو اضافه نمود. مثلا فرض کنید کلاس string متدی که تعداد کلمات داخل رشته رو بشماره نداره ولی شما خودتون می تونید این قابلیت رو اضافه کنید
برای اینکار کافیه یه کلاس استاتیک به شکل زیر یه جایی داخل کد تون اضافه کنید. حتی اگر این کلاس داخل یک Class Library باشد و dll اون به پروژه های دیگه اضافه بشه، این قابلیت به اون پروژه هم اضافه میشه


namespace ExtensionMethods
{
public static class MyExtensions
{
public static int WordCount(this String str)
{
return str.Split(new char[] { ' ', '.', '?' },
StringSplitOptions.RemoveEmptyEntries).Length;
}
}
}


حالا میشه از این متد جدید استفاده کرد



using ExtensionMethods;




...








string s = "Hello Extension Methods";
int i = s.WordCount();





https://msdn.microsoft.com/en-us//library/bb383977.aspx