https://www.techopedia.com/definition/25616/generics-c-sharp