求大神指导C#泛型问题如何理解

求大神指导C#泛型问题如何理解
最近在学泛型问题,想请问一下,就代表泛型,对吗?比如list 其中list是系统自带的数据类型(类似于数组),而代表是泛型,没有指定类型(之后使用时会指定),如果是自定义的,假设我自定义一个类mylass,他的泛型可以这么写myclass对吗?
再想请问一下,上次看的实例代码,看不懂,是否有大神帮忙解释一下,尤其是 T input是指什么?
public class GenericList
{
void Add(T input) { }
}
class TestGenericList
{
private class ExampleClass { }
static void Main()
// Declare a list of type int.
GenericList list1 = new GenericList();
// Declare a list of type string.
// Declare a list of type ExampleClass.
GenericList list3 = new GenericList();
}
}

  T是泛型的参数。T input和string input或者int input等是一样的,只是这个类型不是一个具体的类型,而是T,由调用者指定。
 GenericList<int> list = new GenericList<int>();
 list.Add(123);
 此时对于add就是void Add(int input),T被替换成了int。