class method TestApp.Main; begin var myList := new List<Person>; //lista obiektów typu Person myList.Add(new Person(FirstName := 'Boryslaw', LastName := 'Bob')); myList.Add(new Person(FirstName := 'Borys', LastName := 'Bob')); myList.Add(new Person(FirstName := 'BWB', LastName := 'Bob')); Console.WriteLine(myList.FirstName); Console.ReadLine; end;

end.

Metody generyczne namespace GenericMethodTest;

interface

type GenericMethodTest = static class public class method Main; private class method Swap<T>(var left, right : T); class method DoSwap<T>(left, right : T); end;

implementation

class method GenericMethodTest.DoSwap<T>(left, right : T); begin var a := left; var b := right; Console.WriteLine('Type: {0}', typeof(T)); Console.WriteLine('-> a = {0}, b = {1}', a , b); Swap<T>(var a, var b); Console.WriteLine('-> a = {0}, b = {1}', a , b); end;

class method GenericMethodTest.Main; begin var a := 23; //brak deklaracji typu! var b := 15; DoSwap<Integer>(a, b); //bez rzutowania uszczegóławiającego (ang.