c#泛型

泛型是什么

  我们在编程程序时,经常会遇到功能非常相似的模块,只是它们处理的数据不一样。但我们没有办法,只能分别写多个方法来处理不同的数据类型。这个时候,那么问题来了,有没有一种办法,用同一个方法来处理传入不同种类型参数的办法呢?泛型的出现就是专门来解决这个问题的。

使用泛型是一种增强程序功能的技术,具体表现在以下几个方面:

  • 它有助于您最大限度地重用代码、保护类型的安全以及提高性能。
  • 你可以创建泛型集合类。.NET 框架类库在 System.Collections.Generic 命名空间中包含了一些新的泛型集合类。您可以使用这些泛型集合类来替代 System.Collections 中的集合类。
  • 你可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。
  • 你可以对泛型类进行约束以访问特定数据类型的方法。
  • 关于泛型数据类型中使用的类型的信息可在运行时通过使用反射获取。

举个栗子:

 1 // Declare the generic class.
 2 public class GenericList<T>
 3 {
 4     public void Add(T input) { }
 5 }
 6 class TestGenericList
 7 {
 8     private class ExampleClass { }
 9     static void Main()
10     {
11         // Declare a list of type int.
12         GenericList<int> list1 = new GenericList<int>();
13         list1.Add(1);
14 
15         // Declare a list of type string.
16         GenericList<string> list2 = new GenericList<string>();
17         list2.Add("");
18 
19         // Declare a list of type ExampleClass.
20         GenericList<ExampleClass> list3 = new GenericList<ExampleClass>();
21         list3.Add(new ExampleClass());
22     }
23 }

泛型类和泛型方法兼具可重用性、类型安全性和效率,这是非泛型类和非泛型方法无法实现的。 泛型通常与集合以及作用于集合的方法一起使用。 System.Collections.Generic 命名空间包含几个基于泛型的集合类。 非泛型集合在通常使用具体类型来指示列表中所存储项的类型的情况下,可使用类型参数 T。 其使用方法如下:

  • 在 AddHead 方法中作为方法参数的类型。
  • 在 Node 嵌套类中作为 Data 属性的返回类型。
  • 在嵌套类中作为私有成员 data 的类型。

泛型概述

  • 使用泛型类型可以最大限度地重用代码、保护类型安全性以及提高性能。
  • 泛型最常见的用途是创建集合类。
  • .NET 类库在 System.Collections.Generic 命名空间中包含几个新的泛型集合类。 应尽可能使用泛型集合来代替某些类,如 System.Collections 命名空间中的 ArrayList
  • 可以创建自己的泛型接口、泛型类、泛型方法、泛型事件和泛型委托。
  • 可以对泛型类进行约束以访问特定数据类型的方法。
  • 在泛型数据类型中所用类型的信息可在运行时通过使用反射来获取。

 

  

 

posted @ 2023-08-18 19:47  小雨转晴被占用了  阅读(21)  评论(0编辑  收藏  举报