什么是泛型?
谈谈个人理解吧 :所谓泛型就是指我们在不知道数据类型的情况下能减少代码冗余,提高系统性能,避免拆装箱举个例子比如:我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。而泛型就是为了解决这种问题而生。
下面通过一个小案例好好体会一下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { public class Program { static void Main(string[] args) { //实例化只能保存int类型的类 注明int 的个数 ZhangXiWen<int> iTarry = new ZhangXiWen<int>(5); for (int i = 0; i < 5; i++)//调用setitem()方法进行赋值 { iTarry.SetItem(i, i * 5); } for (int i = 0; i < 5; i++) { Console.WriteLine(iTarry.GetItem(i) + "");//调用GetItem()方法进行取值 } //实例化只能保存char类型的类 ZhangXiWen<char> aArry = new ZhangXiWen<char>(5); for (int i = 0; i < 5; i++) { aArry.SetItem(i, (char)(i + 97)); } for (int i = 0; i < 5; i++) { Console.WriteLine(aArry.GetItem(i)); } } } public class ZhangXiWen<T>//创建泛型的类 { private T[] array;//创建私有的泛型数组 //构造函数 public ZhangXiWen(int size) //类的构造函数 //创建对象的时候先会执行构造函数 //构造函数名必须和类名一致 { array = new T[size + 1];//对数组进行初始化 } public T GetItem(int index)//泛型方法 { return array[index];//返回数组的值 } public void SetItem(int index, T value)//index表示索引 给数组进行赋值 { array[index] = value; } } } |