اینترفیس های کالکشن در .NET
چهارشنبه 1 مهر 1394در این مقاله راجع به اینترفیس هایی که Collection ها پیاده سازی میکنند، صحبت خواهیم کرد.برای کار کردن با مجموعه ها نیاز به یادگیری و فهم اینترفیس های مربوط به آنها دارید.تا در صورت لزوم بدانید برای افزودن یک قابلیت خاص نیاز به کدام واسط دارید.
در دات نت اینترفیس هایی / واسط هایی وجود دارند که توسط Collection ها به ارث برده می شوند.این واسط ها امکانات زیادی از جمله حذف از Collection یا افزودن به آن ، دسترسی تصادفی به عناصر مجموعه و یا امکان پیمایش بر روی آن را فراهم می کنند.
دیاگرام زیر ارتباط بین واسط ها و سلسله مراتب توارث بین آنها را شرح می دهد.
در کلاس دیاگرام کلیه متدها نمایش داده نمی شوند بلکه فقط متدهای مهم لیست شده است.واسط ها در دو نوع کلی Generic و NonGeneric وجود دارند.
اینترفیس جنریک همانند اینترفیس معمولی است. با این تفاوت که برای آنها یک نوع عمومی تعریف میشود و نوع آنها در زمان اجرا تعیین خواهد شد و کلاس بر اساس نوع اینترفیس، اینترفیس را پیاده سازی میکند.
در جدول بالا امکاناتی که هر اینترفیس در صورت پیاده سازی به Collection اضافه خواهد کرد، لیست شده است.همچینن اگر این قابلیت به ارث برده شده است با واژه Inherited مشخث شده است.
با توجه به جدول بالا در مورد سه اینترفیس/واسط اصلی نتایج زیر را می توان گرفت:
IEnumerable- یک مجموعه/Collection را قابل شمارش می کند.
ICollection- شامل متدهایی چون برگرداندن یک عضو از مجموعه ، اندازه مجموعه ، افزودن به و حذف کردن از مجموعه می باشد. از آنجاییکه که این اینترفیس از IEnumerable ارث می برد بنابراین تمام امکانات داخل IEnumerable به این واسط نیز به ارث می رسد و در آن وجود دارد.
Ilist-این واسط از ICollection به ارث می برد.بنابراین تمام امکانات در سلسله مراتب توارث در این واسط نیز وجود دارد
در IEnumerable فقط می توان به سمت جلو حرکت کرد. نمی توان به سمت عقب یا بین آیتمها حرکت کرد.IReadOnly هم مانند IEnumerable فقط حرکت رو به جلو دارد منتها تفاوت آن با IEnumerable در این است که نمی توان آیتم های را حذف یا اضافه کرد.
IReadOnly قسمتی از framework 4.5. می باشد
نتیجه
برای برنامه نویسان فهم واسط ها از این نظر ضروری و مفید می باشد که در مواقع لزوم برای افزودن یک قابلیت خاص به مجموعه بتوان از اینترفیس مربوطه استفاده کرد.
- C#.net
- 2k بازدید
- 1 تشکر