万事开头难,今天先从随笔开始,记录工作中平时不太注意到的知识点。今天开始说下泛型。 泛型在我们项目中很是常见,使用很广泛,我觉的它有以下几个优点。 1.安全性。 2.性能。 3.二进制代码的重用。 4.代码的扩展。 下面从代码方面分析下这些优点。 1.安全性。 这段代码只有运行起来的时候才会报错, 秉着错误得先发现的原则,这种写法不合适。 1 var text = new ArrayList();2 text.Add(44);3 text.Add("mystring");4 foreach (int item in text)5 {6 Console.Write(item);7 } 如果换成泛型,试试看。 1 var list = new List<int>();2 list.Add(44);3 list.Add("mystring");//会编译器会直接报错 2.性能。 同样使用非泛型集合,添加数据,并输出。 可以看出,添加进集合进行了装箱操作,赋值的时候又进行了拆箱操作。一装一拆性能就会影响性能。 1 var text = new ArrayList();2 text.Add(12);3 int a = (int)text[0]; 如果换成泛型,试试看。 泛型定义为int,int类型在编译器动态生成的类中使用,不会进行装箱和拆箱的操作。 1 var list = new List<int>();2 list.Add(44);3 int b = list[0]; 3.二进制代码的重用。 泛型可以使用多个类型来进行实例化。 1 var list = new List<int>();2 list.Add(44);3 var str = new List<string>();4 str.Add("str");5 var Studentclass = new List<Student>();6 Studentclass.Add(new Student()); 4.代码的拓展。 对不同的类型的泛型,进行实例化的时候,程序编译的时候,如果是引用类型,所有实例化的类都共用同一个本地类相同的实现代码,如果是值类型,会为每个值类型实例化一个新类,详细内容,同学可以查找相关的c#教程。 第一次开始记录,有错误的地方,希望大家多多包涵。 |
|