Generics, Commas, and Semicolons
In Delphi 2009, you declare a generic type with multiple type parameters by separating the type parameters with a semicolon. If the type parameters have a constraint, you separate the constraint using a colon. Like this:
type
TFoo<TypeParam1; TypeParam2: ISomething> = class
This means that TypeParam2 must support ISomething. In C#, you would use where instead [...]
Tagged Delphi, generics