C#泛型语法上和JAVA有一定的相似之处,作用也类似,主要是能将一个或多个类型的指定推迟到客户端代码声明并实例化该类或方法的时候, 使用泛型类型最明显的好处是节省代码量,比如相同的一段代码可以接收不同类型的参数,输出不同类型的数据,除此之外,C#还有保护类型的安全以及提高性能的作用。
泛型最常见的用途是创建集合类。C#集合类主要分为列表和字典类两种,和JAVA有一些不一样(JAVA包含List,Set,Map), 而且各个类型包含的子类型也不一样,比如列表包含 Dictionary<T> ,Linkedlist<T>等,而字典类则包含 SortedList,SortedList<T,U>,SortedDictionary<T,U>等,但是各个子类型的应用还是差不多的。
C#的委托在功能上和C++的函数指针感觉是差不多的,但是C#的委托还能通过lambda表达式来实现。Lambda表达式是一种匿名函数,可以写入可作为参数传递或作为函数调用值返回的本地函数。