رەنگە لای هەندێک لە پرۆگرامەرەکان جنێریک بابەتێکی نامۆ بێت بە تایبەت ئەوانەی لە ئاستێکی سەرەتایی پرۆگرام نوسیندان.

من هەمیشە کە هەولی فێربونی شتێکم داوە ئاسانترین رێگام دۆزیوەتەوە تا خۆمی لێوە فێر بکەم، وە بە هەمان شێوە ئاسانترین رێگا هەلدەبژێرم بۆ کەسی بەرامبەر کە بمەوێت فێری شتێکی بکەم بۆیە پشت بە خودا لەم ئارتیکلەدا وەڵامی هەمو ئەو پرسیارانەتان بۆ واڵا دەکەم جنێریک(Generic) چیە ؟ سودی چیە ؟ چۆن بەکاردێت ؟ لە بواری پرۆگرام سازیدا کەس ناتوانێت کەس بکات بە پرۆگراممەر ! بۆیە دەبێ خۆت هەوڵی پێش خستنی ئاستی خۆت بدەیت، بۆیه‌ من تەنیا ئاشنات دەکەم بە باتەکە.

جنێریک(Generic) چیە ؟
بە شێوازی سەرەتایی پرۆگرام نوسین ئەگەر بمانویستبا ستراکچەرێک یان دلیگەیتێک یان مێثۆدێک یان پرۆپێرتی یاخوت ڤارەیبلێک…هتد پێناسە بکەین دەبو داتا تایپی شتەکە دیاری بکەین وەک ئەم نمونەیە
String Delegate
ئێستا لەم نمونەیەی سەرەوەدا دلیگەیتێکمان دروست کردوە لە تایپی String بەمەش ئەم دلیگەیتە تەنها دەتوانێت نوێنەرایەتی مێسۆدێک بکات کە تایپەکەی سترینگ بێت بەمەش ئەگەر پرۆگرامەکەت چەند مێسۆدێکی داتا تایپ جیای تێدابو ویستت دلیگەیتیان بۆ دروست بکەیت تا بەیەکەوە بەکاریان بهێنی دەبێ چەند داتا تایپت هەن لە پرۆگرامەکەدا ئەوەندە دلیگەیت دروست بکەیت داتا تایپی هەر یەکەشیان گونجاو بێت لەگەل داتا تایپی مێسۆدەکە ئەمەش زۆر بێزارکەرە پرۆگرامەکەت گەورەتر و کۆمپلێکس تر دەکات وە کاتی زۆرتریشت لێ دەبات بۆیە بلێ بای بای شێوازی سەرەتای (non generic)

لە وەشانی 2.0 زمانی سی شارپ تایبەتمەندی Generic بۆ Dot Net Framework زیاد کرا وە هاوپێچ کراوە لە ناو نایم سپەیسی System.Collections.Generic کە لە رێگایەوە دەتوانی ستراکچە،کلاس،مێسۆد،دلیگەیت،پرۆپێرتی،ڤارەیبل،ئیڤێنت….هتد دروست بکەیت کە داتا تایپەکەی گۆراو بێت واتە داتا تایپێک دروست بکەیت کە چۆنت بوێت وا بەکاری بێنی ئەگەر وەک سترینگ ویستت بەکاری بێنی دەتوانی ئەگەر وەک ئینتیژەر یان بول یان هەر داتا تایپێکیتر ویستت دەتوانی بەکاری بێنی واتە دروستکردنی هەر یەکێک لەو ئەندامانەی سەرەوە بە داتا تایپی گۆراو وەک ئەم نمونەیەی خوارەوە genericExample
ئێستا لەم نمونەیە سەرەوە کلاسێکی جنێریکمان دروست کردوە لەگەل داتا تایپێک کە خۆمان پێناسەمان کردوە بە ناوی MyType لە ناو کلاسەکەدا دوو مێسۆدمان دروست کردون یەکیان لە تایپی void بۆ پیشاندانی داتا تایپەکەی ئەویتریان لەو داتاتایپەی کە دروستمان کردوە لەگەل ڤارەیبلێک و کۆنستراکتەرێک لە هەمان داتا تایپی کە دروستمان کردون ئەگەر سەیری کلاسی دوەم بکەین لە ناو مەین مێسۆدا کە بانگی جنێریک کلاسەکەم کردوە جارێکیان وەک سترینگ بەکارم هێناوە جارێکیشیان وەک ئینتیژەر ! کەواتە لە جیاتی ئەوەی دوو کلاس دروست بکەم یەک کلاسم دروست کرد بەو داتا تایپەی کە دەمەوێت دوای بۆ چ داتا تایپێک بمەوێت دەیگۆرم

سودی چیە ؟
بە بەکارهێنانی جنێریک دەتوانی داتا تایپێک دروست بکەی کە بە ئاسانی و بەبێ کاستینگ تایپ دەتوانی بیگۆریت بۆ داتا تایپەکانیتری وەک String,int,bool,float,double,long,decimal....etc

چۆن بەکاردێت ؟
بە سادەیی فۆرمولەی دروست کردنی جنێریک لە نێوان ئەم دوو کەوانەیە ناوی ئەو داتا تایپەی کە دەتەوێت دروستی بکەیت دەنوسی لە دوای ناوی کلاسەکە یان ستراکچەکە یان ئینتەرفەیسەکە وەک ئەم نمونەیەی خوارەوە کە هەمو ئەندامەکانی کلاسی تێدایە
general generic
بۆچی Generic باشترە لە Object ؟
لە جیاتی بەکارهێنای جنێریک دەتوانی ئەو داتا تایپەی کە دەتەوێت وەک گۆراو بەکاری بهێنیت لە Object دروستی بکەی بەلام ئەمە کەمێک بێزارکەرە ئەگەر لە هەر شوێنێک بتەوێت ئەو شتەی کە لە تایپی Object دروست کراوە بگۆریتە سەر داتا تایپە بنچینەیەکان وەک سترینگ و ئینتیژەر و ..هت دەبێ کاستینگ بکەی وەک ئەم نمونەیە obj ئەمەش کۆدی زیاتری دەوێت و کاتی زیاتریشی دەوێت بۆ پرۆگرام نوسین وە هەروەها بۆ لایەنی سیکیوریتیش جێنێریک باشترە کۆدەکانیت سیکیورتر دەبن لەگەل جێنێریک

هەموو ماڵپەر و دەزگایەكی ڕاگەیاندن ئازادە لە بڵاو كردنەوەی بابەتەكانی ماڵپەری تێك ئای، بەمەرجێك ئاماژەی بە سەرچاوەكە بكات

شەیر بكە بۆ هاوڕێیانت

دەربارەی نوسەر

ئەندازیاری تەکنیکی -کۆمپانیای کۆرەک تیلیکۆم

Comments are closed.