سفارش تبلیغ
صبا

 

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

 

  1. آیا می توان interfaces, classes, methods, events and delegates. داشته باشیم که بتواند انواع مختلف داده را بپذیرد؟
  2. آیا می توان آرایه یا لیستی از عناصر گوناگون داشته باشیم که بتواند انواع مختلف داده ها را در خود ذخیره کند ؟
  3. آیا می توان بدون پیاده سازی مجدد یک الگوریتم آن را با ساختار داده ای متفاوت دیگری بکار ببریم؟

 


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

تعریف generic

یککلاس یا متد و یا اینترفیس و غیره شبیه یککلاس) یا متد و یا اینترفیس و غیره( عادی تعریف می شود ، با این تفاوت که بعد از نام کلاس ، نوع generic مشخص می گردد. نوع داده ای generic بوسیله کلاس می توانند به عنوان نوع داده یک عضو از کلاس یا به عنوان نوع داده پارامتری متدها استفاده شوند.
http://s1.picofile.com/alaalawi/Documents/oop/generic.pdf.html

 


نظر() هزار و یک نکته در سی شارپ ،

 حذف ردیف...   

مشخصات مدیر وبلاگ

محمد محمدی پیروز [33]

دل نوشته ها و تجربه های یک برنامه نویس
ویرایش

لوگوی دوستان


ویرایش

طراحی پوسته توسط تیم پارسی بلاگ