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

RkJQdWJsaXNoZXIy MTAxMzI5