泛型不是模板。c++中的模板是在编译的时候就进行字符串的替换,而c#中的泛型是在运行的时候才进行解释,两个的工作原理都是不同的。一个典型的差别:
c++中可以这样
template
class A
{
public:
A() { T* shit = new T("fdafdafdsa");}
};
void main() {}
在生成一个T的对象的时候不报错。同样形式的代码放在c#的泛型里面看看,显然不行。
可以多找些网上的内容看看。
你可以将泛型编程理解成基于模板的编程。关键是类型参数化
泛型是 2.0 版 C# 语言和公共语言运行库 (CLR) 中的一个新功能
JAVA里面也有泛型