در دات نت 1 نمی تواند BinaryFormat را باز کند.
چند نوع Collection مختلف وجود دارد که هر کدام برای انجام کار خاصی استفاده می شوند:
Collection نیز خیلی مهم است. در Collection هم می توان داده ها را به صورت ترتیبی یعنی پشت سر هم Add کرد و هم می توان آنها را به صورت Random اضافه نمود.اکنون در ادامه خاصیت های هر یک از Collection ها را مرور می کنیم:
اگر کلاسی که خودمان می نویسیم بخواهیم قابلیت AddRange داشته باشد باید از ICollection مشتق شده باشد. می توانیم توابع اش را Override کنیم.
در زیر برخی از توابع را بررسی می کنیم:
لازم به ذکر است که وقتی Remove می کنیم سایز کم می شود چون کلا آن خانه برداشته می شود.
Clear کل محتویات Array List را حذف می کند.
فایل Contains وجود یا عدم وجود عضوی را بررسی می کند و T یا F برمی گرداند.
آن Collection هایی که فقط String می توانند داشته باشند را اگر داخلش Int اضافه کنیم سیستم Exception می دهد.
همه این Collection ها از ICollection مشتق شده اند که بدانیم همه یک Functionality را دارند.
Count: تعداد دیتاهایی که در Collection وجود دارد را برمی گرداند. یعنی ممکن است با سایز متفاوت باشد.
اینترفیس ICompartable از متد Compare استفاده کرده است:این متد بسیار ساده است و برای مقایسه دو پارامتر ورودی به کار می رود.
در Collection ها دسترسی به اطلاعات به صورت ترتیبی است. اما 2 نوع دیگر نیز به شرح زیر معرفی می گردد:
تابع Count تعداد دیتاهای موجود را نمایش می دهد.
در مورد Queue دو تابع زیر مورد استفاده قرار می گیرد:
یکی از کاربردهای Peak اینست که مثلا در سرویس Msqueu که از سرویس های ویندوز است سرویس های مختلف را در صف نگهداری می کند.
توجه شود که Dequeu همیشه آبجکت برمی گرداند. در صف همیشه Object قرار داده می شود.
در Stack نیز همیشه آبجکت اضافه می شود.توابع مورد استفاده در Stack به شرح زیر است:
یک Queue ممکن است در اختیار چند Queue Manager باشد.
اگر از Enumerable مشتق نشده باشد نمی توانیم از Foreach استفاده کنیم.
HashTable برای Lookup استفاده می شود. HashTable به صورت (Key,Value) است. در HashTable با Key می توان به Value رسید.
در hashTable اگر Key تکراری داشته باشیم Override می کند.
Key همیشه باید Uniqe باشد.
Object در صورتی می تواند به آبجکت دیگری Cast شود که از یک نوع باشند.
دیکشنری از IDictionary مشتق شده است و IDictionary هم از ICollection مشتق شده است.
تابع Countains می تواند Key را بگیرد و بگوید که وجود دارد یا خیر.
SortedList هم خاصیت List معمولی را دارد و هم کاملا مثل Hashtable است. با Index نیز می توان به دیتاهای SortedList دست یافت. اگر Index های تکراری وجود داشته باشد به اولین Index که می رسد برمی گرداند.
SortedList همیشه مرتب است و بر روی لیست مرتیب کار می کند.
Hashtable برای پیاده سازی Compare باید از IEqualityCompare مشتق شود.
SortedList برای اینکه بتواند تابع Compare را Override کند باید از IComparable مشتق شده باشد.
دیکشنری های خاص به شرح زیر هستند:
OrderdList[Key or Index]-- > Value
SortedList[Key]--- > value
یعنی در Sorted List با Key نمی توانید Value را برگرداند.
توجه: در Hashtable نمی توان به دیتاها با Index دسترسی داشت. در ضمن Object های داخلش نیز با Hash مرتب شده اند و ما نمی دانیم که کدام hash برای کدام آیتم است.
با تابع Remove At می توان یک ایندکس خاص راپاک کرد.
در همه ی Dictionary ها حروف کوچک و بزرگ فرقی ندارد.
اگر بخواهیم نسبت به حروف حساس باشد یعنی بین first و FIRST تفاوت بگذارد باید توچه داشت که فقط HashTable و Sorted List را می تواk به حروف حساس کرد.
BitArray فقط T یا F برمی گرداند. خواص آن به شرح زیر می باشد:
Generic ها چه فایده هایی دارند:
چند مورد از اینترفیس های مهم در دات نت به شرح زیر هستند:
وقتی به یک متد Object پدر پاس شده باشد، می تواند Object های فرزند را نیز به آن پاس کرد.