سلام دوستان
من میخواستم بدونم 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]