در مورد Collection از کتاب Microsoft 70-536

  1.  در دات نت فریم ورک System.Collection شامل چندین نوع از Collection ها می باشد. 
  2.  انواع Collection ها به شرح زیر می باشد:
  • §         ArrayList: داینامیک است. در مورد Add دو متد Add و AddRange را دارد که AddRangeدیتا را به انتهای ArrayList اضافه می کند.  البته از Insert کردن دیتا در یک محل خاص نیز ساپورت می کند که در این صورت دو متد Insert  و InsertRange استفاده می شود. برای اضافه کردن محتوای یک آرایه یا هر آبجکتی که ICollection را Support کند، به Collection استفاده می شود. برای Remove کردن از ArrayList هم متدهای Remove, RemoveAt و RemoveRange استفاده می شود. توابع IndexOf ،Clear  و contains نیز در مورد ArrayList استفاده می شوند.
  • §         SortedList
  • §         Queue
  • §         Stack
  • §         HashTable
  • §         BitArray
  • §         StringCollection
  • §         StringDictionary
  • §         ListDictionary
  • §         HybridDictionary
  • §         NameValueCollection
  1.  از متدهای مورد استفاده در صف  Dequeue, Enqueue و Peek هستند.
  2.  متدهای مورد استفاده  در Stack عبارتند از Push, Pop و Peek
  3. Dictionary برای Mapp کردن Key به Value مورد استفاده قرار می گیرد. برای مثال برای map کردن آدرس ایمیل به نام هر شخص. با استفاده از hashTable این mapping ها ذخیره می شوند. مثال نام و آدرس ایمیل ها در زیر آورده شده است:

Hashtable emailLookup = new Hashtable();

emaillookup.Add(“aaa” , “bbb”) یا  emailLookup[“aaa”]=”bbb”

  1.  SortedList هم از نوع Dictionary می باشد و داده های موجود در آن به صورت  Sort شده می باشند. نمونه ای از SortedList به صورت زیر می باشد:

SortedList sort = new SortedList();

Sort[“First”]=”1st”

Sort[“second”]=”2”

Sort[“Fourth”]=“4”

وقتی محتوایkey وVaue  این SortedList چاپ شود نتیجه به صورت زیر می شود:

First=”1st

Fourth=”4”

Second=”2”

توجه شود که اگر در خط اول به صورت 

 SortedList sort = new SortedList(new DescendingComparer())  

 نوشته شده می بود، خروجی برعکس می شد یعنی اول Second بعد Fourth و بعد First می آمد.

  1.  متد Capacity تعداد آیتم های Allocate شده برای Collection را برمی گرداند. توجه شود که این با تعداد داده های موجود در آن که توسط Count برگردانده می شود متفاوت است.
  2.  به غیر از دیکشنری های استاندارد مانند Hashtable و SortedList دیکشنری های دیگری نیز مانند ListDictionary، HybrideDictionary و OrderedDictionary نیز وجود دارند.

معرفی Boxing و UnBoxing از کتاب Microsoft 70-536

  1.  Boxing تبدیل ValueType ها به RefrenceType را انجام می دهد. 
  2. Boxing به سیستم OverHead اضافه می کند. 
  3. UnBoxing تبدیل RefrenceType ها به valueType ها را انجام می دهد. 
  4.  مثالی از عمل Boxing که یک Integer را که یک ValueType است به یک Object که RefrenceType است تبدیل می کند:

Int i =123;

Object o = (object)i;

  1. مثالی از unBoxing که یک RefrenceType را به یک valueType تبدیل می کند:

Objetc o = 123;

Int i = (int) o;

در مورد Attricute ها - از کتاب Microsoft 70-536

  1.  Attribute ها برای نوصیف تایپ، متد و یا پراپرتی مورد استفاده قرار می گیرند. 
  2.  به عنوان مثال Attribute با عنوان Serializable برای تعریف قابلیت Serializable مورد استفاده قرار می گیرد.

چگونگی پاسخ دادن به Event - از کتاب Microsoft 70-536

  1. متدی برای پاسخ به Event ایجاد شود که Signature این متد مانند Signature ایست که برای Delegate تعریف شده است که نمونه ای از آن به شرح زیر است:

Private void button1_click (object sender , EventArgs e)

{

}

  1.  اضافه کردن یک EventHandler برای نمایش دادن اینکه کدام متد باید Event را Raise کند. نمونه ای از آن در زیر آورده شده است:

This.button1_click += new system.EventHandler(this.buttion1_click)

  1.  در صورتی که موارد فوق رعایت شود، وقتی که Event اتفاق بیفتد متدی که مشخص شده است Run خواهد شد.

معرفی Delegate از کتاب Microsoft 70-536

  1.  Delegate کلاسی است که می تواند Reference به متد را نگهدارد. 
  2.  برخلاف سایر کلاس ها، Delegate کلاسی است که دارای Signature است و می تواند Reference هایی به متدهایی نگهدارد که Signature آنها مانند Signature خودش است. 
  3.  Delegate ها موارد استفاده دیگری نیز دارند که یکی از آنها EventHandling است. 
  4.  یک نمونه از تعریف Delegate به صورت زیر می باشد:

Public Delegate void AlarmEventHandler(object sender , EventArgs e)

  1. Signature استاندارد برای Delegate که کار EnevnHandling  را انجام می دهد به شرح زیر است:
  • §         متدی را تعریف می کند که مقداری برنمی گرداند.
  • §         پارامتر اول Instance از آبجکتی است که Event را Raise کرده است.
  • §         پارامتر دوم از تایپ EnevtData است.