(برنامه نویسی سی شارپ ) متدهای توسعه یافته Methods Extensim در #C(مهندسی برق _ الکترونیک)
پژوهشگر و نویسنده: ( افشین رشید )
نکته: قابلیت جدید دیگر زبان 0.3# C ،متدهای توسعه یافته یا Methods Extensim است. این ویژگی به شما امکان می دهد تا قابلیت های جدیدی را به یک نوع داده ای یا type موجود اضافه کنید.
بدون این که نیاز داشته باشید آن type را به صورت یک زیر مجموعه یا Class کلاس به ارث رفته درآورد یا مجدداً کامپایلش کنید.به عبارت دیگر می توانید عملکردهای جدیدی را به یک نوع داده ای اضافه کنید، بدون این که نسخه اصلی آن را تغییر دهید.برای مثال ممکن است در موردی بخواهید بدانید یک نوع داده ای متنی یا string شامل اعداد است. راه حل عادی برای انجام این کار، تعریف یک تابع یا function بوده و هر زمان که نیاز دارید آن تابع را فراخوانی می کنید. پس از این که چند مدل از این نوع تابع ها را تعریف کردید، می توانید آن ها را در یک کالس به صورت زیر قرار دهید.
(class utility: (
public class MyUtils
{
public static bool IsNumeric(string s)
{
float output;
return float.Try(s, out output);
}
اما به وسیله متدهای توسعه یافته یا Methods Extension ،می توانید کلاس string را به گونه ای گسترش داده تا به صورت مستقیم عملیات فوق را انجام دهد. این کار با تعیین یک کلاس ثابت Class Static و تعریف چندین تابع ثابت Methods Static درون آن به عنوان کتابخانه ای از کدها، صورت می گیرد. مثال زیر، نحوه کدنویسی را به صورت عملی نشان داده است :
public static class My ExtensionMethods
{
public static bool IsNumeric(this string s)
{
float output;
return float.Try(s, out output);
}
}
نکته : تنها چیزی که این متد را از سایر Methods Static ها، متمایز می کند، به کار بردن واژه کلیدی this در بخش پرانتز پارامترهای تابع است. این کلمه کلیدی به کامپایلر اطلاع می دهد که این تابع یک Extension Methods می باشد و تنها کار لازم جهت تبدیل یک متد معمولی به یک متد توسعه یافته است.پس از انجام مراحل فوق، می توانید تابع (IsNumeric) را به صورت مستقیم بر روی شی string به کار برد.
پژوهشگر و نویسنده: دکتر ( افشین رشید )