|
|
|
|
|
by hugorodgerbrown
4755 days ago
|
|
Generics are used to defer type setting from compile time to run time, allowing for flexible, yet type-safe constructs. The classic example is a list (in a strongly-typed language) - without generics you would create specialised strongly-typed list classes - you could have a StringList (only strings), an IntList (only ints), etc. Using generics you can define a single list class of type <T>, where <T> is any type. Then at runtime you would create a List<String> or a List<Int>. Same outcome, less code, easier to maintain. MSDN has a good intro to C# generics - http://msdn.microsoft.com/en-us/library/ms379564(v=vs.80).as... They are less appropriate in dynamic languages, as type-safety isn't a compile time concern. |
|
Whether it's static or dynamic is language-dependent. Example: Java in particular does erasure on parameterized types, so generics are only compile-time.