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;