C# 中的泛型是什么?

44

C# 中的泛型是什么?这个概念可以用一个简单的例子来说明。有哪些相关文章或网站可以了解这个主题呢?

3个回答

105

泛型是一种编写类代码的技术,它不指定类所处理的数据类型。

在声明一个泛型类实例时,需要指定数据类型。这允许一个泛型类能够为多种不同的数据类型进行特化,而只需编写一次该类。

在.NET中,许多集合类就是很好的例子。每个集合类都有自己的创建和管理方式的实现,但它们使用泛型来允许其类与任何类型的集合一起工作。

http://msdn.microsoft.com/en-us/library/ms379564(VS.80).aspx


12
尝试进行阐述并让提问者更易理解,给你点个赞! - Nikos Steiakakis
谢谢你的解释。我现在对泛型有了一些基本的概念。 - Karthik
答案中提到的点同样适用于单个方法。 - Sai
简短的答案成功地解释了多篇冗长文章未能向读者传达的内容。 - FBryant87
当您声明泛型类的实例时,需要指定数据类型。 - 非常出色 - Gerard Simpson

4

C#中的泛型并没有什么特别之处。C#只是喜欢采用众所周知的概念,并给它们起一个不同的名字(例如将过程称为“静态方法”,或者将flatMap称为“SelectMany”)。在这种情况下,泛型只是C#对一阶参数多态性的命名。


3
我需要记住这个答案,以便在面试中使用。我认为它会让他们大吃一惊。(我不知道你说了什么,但听起来很棒!) - Piotr Kula

3
从MSDN文档中可知,泛型是C#最强大的特性之一。使用泛型可以定义类型安全的数据结构,而无需确切地指定数据类型。这将显著提高性能并提升代码质量,因为您可以重用数据处理算法而无需复制特定于类型的代码。从概念上讲,泛型类似于C++模板,但在实现和能力方面有着明显的差异。更多信息请参考:https://msdn.microsoft.com/en-us/library/ms379564.aspx

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接