generic

شاید برای شما این سوال مطرح شده باشد ، که چگونه می توان کلاس یا متی و .. بنویسیم که مثلا با انواع داده ها کار کند .مثلا متدی بنویسیم که پارامترهای ورودی آن هم از نوع int  و هم از نوع float  باشد و یا کلاسی بنویسید که هم پارامتر های  int  را بپذیرد و هم string  ، خوب حتما می خواهید چندین متد یا چندین کلاس بنویسید و یا فکر می کنید باید override  کنید . نه اینگونه نیست .از زمان اریه شده .net2    چند سالی می گذرد ، اما یکی از قابلیتهایی که در آن زمان اضافه شد generic    ها بود .که تا به امروز هم استفاده فراوانی دارد .generic  ها ساختار گرامری جدیدی به دات نت اضافه کرده اند .مثلا می توانید یک کلاس کلی بنویسید بدون اینکه مشخص کنید که چه نوع داده ای رامی پذیرد .البته این کل ماجرا نیست بلکه به نظر بنده generic ها پاسخی هستند به برخی از نیازها و سواالات زیر :

1-آیا می توان interfaces, classes, methods, events and delegates. داشته باشیم که بتواند انواع مختلف داده را بپذیرد؟

2-آیا می توان آرایه یا لیستی از عناصر گوناگون داشته باشیم که بتواند انواع مختلف داده ها را در خود ذخیره کند ؟

3-آیا می توان بدون پیاده سازی مجدد یک الگوریتم آن را با ساختار داده ای متفاوت دیگری بکار ببریم؟

سوالات فراوان است اما بنده به همان سه سوال بالا اکتفا می کنم . و وارد بحث خواهم شد ، ابتدا تعریف

تعریف generic

یک  کلاس یا متد و یا اینترفیس و غیره شبیه یک  کلاس) یا متد و یا اینترفیس و غیره( عادی تعریف می شود ، با این تفاوت که بعد از نام کلاس ، نوع generic  مشخص می گردد. نوع داده ای  generic  بوسیله کلاس می توانند به عنوان نوع داده یک عضو از کلاس یا به عنوان نوع داده پارامتری متدها استفاده شوند.


فایل کامل مقاله بصورت