extension Method در C# چیست؟

Nasim_Engineer

عضو جدید
سلام دوستان

من میخواستم بدونم extension method ها در C# چی هستن و چه جوری می تونم یک extension method بنویسم؟

از همه ی شما تشکر می کنم که منو راهنمایی می کنین
 

HH2BN1990

کاربر فعال
سلام دوستان

من میخواستم بدونم extension method ها در C# چی هستن و چه جوری می تونم یک extension method بنویسم؟

از همه ی شما تشکر می کنم که منو راهنمایی می کنین

متدهای توسعه امکان اضافی کردن کارایی های جدید به کلاسها ، ساختارها یا اینترفیس هایی که کد آنها در دسترس نیست و یا امکان ارث بری از اونها وجود نداره رو میده !
تو تعریف متد های توسعه چند تا محدودیت داریم !
اول اینکه متد ها رو توی یک کلاس استاتیک بنویسیم .
دوم برای اینکه به کامپایلر بگیم که این تابع ، یک تابع توسعه هست باید تو اولین پارامتر ورودی از کلمه ی کلیدی this استفاده کنیم .
یه نکته دیگه اینکه اگر یک تابع توسعه تعریف کردین ولی یک توسعه داخلی با الگوی مشابه وجد داشته باشه ، اولویت با توسعه داخلی هستش .
و نکته دیگه رویدادها و عملگرها قابل توسعه نیستند !

کد:
[LEFT]static class MyExtensionMethodes
{
public static string ConvertNullToEmptyString(this string strInput )
{
return ( String.IsNullOrWhiteSpace(strInput) ? string.Empty : strInput );
}
}[/LEFT]

نحوه ی استفاده

کد:
[LEFT]string strTest = null;
 strTest = strTest.ConvertNullToEmptyString();[/LEFT]
 
بالا