Oxygene

Sablonok



Szintaxis

Az Oxygene támogatja a generikus típusokat. Példa:

type PersistentCollection<T> = public class(ArrayList, IPersistentCollection) where T is PersistentObject, T has constructor; private method GetItem(aIndex: Integer): T; protected method GetItemName: String; virtual; public method LoadFromXml(aNode: XmlNode); virtual; method SaveToXml(aNode:XmlNode); virtual; property Items[aIndex: Integer]: T read GetItem; method AddNew: T; method AddNew(aName: String): T; end;

Paraméterek

A nyelv lehetőséget biztosít, hogy a sablon paraméterekre bizonyos megszórításokat tegyünk. Két féle megkötést lehet tenni. Az egyik az, hogy megköveteljük a sablonparamétertől, hogy legyen konstruktora. Pédául:

type List<T> = public class where T has constructor; public //... end;

Ezen kívül a típustól bizonyos tulajdonságot is megkövetelhetünk, azaz valósítson meg valamilyen interface-t. Pédául:

type List<T> = public class where T has constructor, T is IComparable; public //... end;