PDA

View Full Version : سوال: generic چیست؟



jafar007
شنبه 02 مرداد 1389, 22:17 عصر
سلام به همه
اولا بگم که یک سرچی زدم تو سایت ولی چیزی درمورد اینکه generic چی هست پیدا نکردم ؟
من می خوام بدونم جنریک چی هست و چیکار می کنه ، اینکه می گن مثلا generic list چه خواسیتی داره.
اگر یک کتاب فارسی معرفی کنید که این مطلب و کلا مفاهیم جدید .net را داشته باشه خیلی ممنون میشم.
تو اینترنت خیلی گشتم ولی همش کتاب ASPو C#‎ بود که تو هیچ کدوم این چیزا را ننوشته بود.
البته انگلیسی هم بود بود .
با تشکر.

ricky22
شنبه 02 مرداد 1389, 22:28 عصر
لیستی از اشیا که با ایندکس بهشون دسترسی داری و می تونی مرتب سازی داشته باشی و جستجو و ....
توضیح زیر مربوط به Generic list است

http://msdn.microsoft.com/en-us/library/6sh2ey19.aspx...

Alireza_Salehi
شنبه 02 مرداد 1389, 22:34 عصر
جنریک یعنی این که کلاسی تعریف کنید که نوع نداشته باشد مثل Generic List که نوع محتوان آن موقع تعریف لیست مشخص می شود، برخلاف لیست های معمولی که object قبول می کنند.
هر کلاسی که جنریک باشه یعنی محتوای داخلی اون قابل تغییره. پشته ، صف ، لیست از جمله کلاس های جنریک در سی شارپ هستند.

اینجا بیشتر توضیح داده، که جنریک چیست و به چه کار می آید:
http://msdn.microsoft.com/en-us/library/ms379564%28VS.80%29.aspx

hamid.shekasteh
یک شنبه 03 مرداد 1389, 06:32 صبح
به صورت خلاصه Generic کدنویسی شما رو کم می کنه .چگونه؟
در جنریک شما یک کلاس کلی رو می نویسید بدون اینکه برای یه نوع داده خاص باشه.
مثلا کلاس جمع دو عدد که هم می تونه عناصر int داشته باشه هم float , decimal ,...
این نوع برای ورودی و خروجی می تونه باشه.
Generic در دات نت مفهومی شبیه templete ها در C++ داره.
در کتاب آقای اسلام احمد زاده مطالب مفیدی هست.
در آموزش های تصویری این سایت هم یه چیزایی هست اگه جستجو کنید.

jafar007
یک شنبه 03 مرداد 1389, 15:45 عصر
خیلی ممنون از شما . توضیح های مختصر و کاملی بود.
این آقای اسلام احمد زاده کتابش روی اینترنت هست یا باید از کتاب فروشی تهیه کنم. فقط اگر کتابی هست که تکنلوژی های دیگه .NET 4 یا 3.5 رو توضیح داده ممنون می شم معرفی کنید.
با تشکر

vandermond
یک شنبه 03 مرداد 1389, 18:19 عصر
خیلی ممنون از شما . توضیح های مختصر و کاملی بود.
این آقای اسلام احمد زاده کتابش روی اینترنت هست یا باید از کتاب فروشی تهیه کنم. فقط اگر کتابی هست که تکنلوژی های دیگه .NET 4 یا 3.5 رو توضیح داده ممنون می شم معرفی کنید.
با تشکر
دوست عزيز
بله اين كتاب تو سايت موجود هستش. جستجو كنيد حتما مي يابيدش:چشمک:


ويرايش: لينك توسط مديران سايت حذف شده. نميدونم چرا ولي خب شما ميتونيد تو بخش مقالات اون كتاب رو پيدا كنيد.(مگه لينك مشكل داشت:متفکر:)

hamid.shekasteh
یک شنبه 03 مرداد 1389, 21:51 عصر
کتاب هم در بازار موجوده.
ضمن اینکه برای کامل تر شدن موضوع :
در مورد مثال برای Generic باید بگم مثال درست(بهتر) تغییر مقدار دو متغیر است که برای این کاراستفاده ازGeneric باعث کوتر شدن کد نویسی می شود به مثال زیر توجه کنید:
کد تغییر مقادیر دو متغیر هم نوع:



private void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
private void Swap(ref decimal a, ref decimal b)
{
decimal temp = a;
a = b;
b = temp;
}
private void Swap(ref float a, ref float b)
{
float temp = a;
a = b;
b = temp;
}






حالا به جای نوشتن این کد ها می توان با جنریک کار کدنویسی را کمتر کرد:
دو خط آخر چگونگی استفاده از متد نوشته شده برای دو متغیر int می باشد:



private void SwapByGeneric<T>(ref T a, ref T b)
{
T temp = a;
a = b;
b = temp;


}



int a = 1, b = 5;



SwapByGeneric<int>(ref a, ref b);





با این وجود برای همان مثال اول هم می توان از Generic استفاده کرد.

jafar007
یک شنبه 03 مرداد 1389, 22:25 عصر
با تشکر از شما .
اگر می شد دو سه بار تشکر می کردم . کارمو خیلی راه انداختید.:بوس:

piroozman
یک شنبه 05 خرداد 1392, 20:18 عصر
یه سری به این وبلاگ بزنی بد نیست
یادداشت های یک برنامه نویس (http://pirooz.parsiblog.com/Posts/40/Generic+%da%86%d9%8a%d8%b3%d8%aa%d8%9f/)