OZ 2004/2
M 83 ORGANIZACIJA ZNANJA 2004, LETN. 9, ZV. 2 POROČILO C# – Novosti in izbolj{ave sintakse Izboljšave so bile predstavljene v več sklopih. Nobena od izboljšav ne pomeni sprememb predhodnih razvojnih stopenj. 1. Generiki Kolekcijski objekt vsebuje enumerator, preko katerega se dostopa do posameznih objektov, ki so v kolekciji. Generiki omogočajo izgradnjo tipiziranih zbirk. V tem primeru odpade tipsko preverjanje, ni uokvirjanja, ni pretvorb tipov. Delovanje je hitrejše. Generik v predstavljenem primeru označuje tipski parameter “T”. public class List<T> { private T[] elements; private int count; public void Add(T element) { if (count == elements.Length) Resize(count * 2); elements[count++] = element; } public T this[int index] { get { return elements[index];} set { elements[index] = value;} } public int Count { get { return count; } } } Uporaba generika: List<int> intList = new List<int>(); intList.Add(1); // Ni uokvirjanja intList.Add(2); // Ni uokvirjanja Tipski parametri se lahko pripišejo razredom, struktu- ram, vmesnikom, delegatom in metodam. 2. Anonimne metode Anonimne metode skrivajo kompleksnost delegatov. Anonimne metode omogočajo blok kode na mestu delegata. Tip delegata se ugotovi samodejno. Primer: button.Click += delegate { Message- Box.Show(“Hello”); }; 3. Iteratorji Preko metode GetEnumerator() imamo dostop do iteratorja določene kolekcije. Primer: Enumerator e = list.GetEnumerator(); while (e.MoveNext()) { object obj = e.Current; DoSomething(obj); } 4. Get/Set imata lahko različne vidnostne omejitve. Pri- mer, ko je set bolj omejen kot get: public class Customer { private string id; public string CustomerId { get { return id; } internal set { id = value; } } } Dejan Valh in sodelavci (po abecednem redu): Andrej Barovič Karpov, Andrej Korošec, Aljoša Nikl, Marjan Vaupotič, Janko Žigart
Made with FlippingBook
RkJQdWJsaXNoZXIy MTAxMzI5