当前位置:
首页 > temp > 简明python教程 >
-
C#泛型自己的理解和总结
万事开头难,今天先从随笔开始,记录工作中平时不太注意到的知识点。今天开始说下泛型。
泛型在我们项目中很是常见,使用很广泛,我觉的它有以下几个优点。
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.代码的拓展。
对不同的类型的泛型,进行实例化的时候,程序编译的时候,如果是引用类型,所有实例化的类都共用同一个本地类相同的实现代码,如果是值类型,会为每个值类型实例化一个新类。
第一次开始记录,有错误的地方,希望大家多多包涵。
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程
检测数据类型的四种方法
js中数组的方法,32种方法
前端操作方法
数据类型
window.localStorage.setItem 和 localStorage.setIte
如何完美解决前端数字计算精度丢失与数