C#基础知识 简单说明泛型的优点

本文通过对比非泛型与泛型的实例,阐述了泛型在减少装箱拆箱操作方面带来的性能提升,以及通过类型检查增强的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

有关泛型的优缺点在网上有很多篇文章,也足以说明问题,我就不去复制粘贴了(而且内容有些多),由于记性不太好,所以自己做个简单明了的总结。

泛型的优点主要有两个:

  • “性能”
  • “安全”

性能从何谈起?很简单,看个粟子。

            //装箱与拆箱操作很容易使用,但是对性能的损失较大,尤其是遍历许多项时非泛型
            var list = new ArrayList();
            list.Add(4); //boxing 装箱操作
            int i1 = (int)list[0];//unboxing- convert a reference to a value type 拆箱操作
            foreach (int i2 in list)
            {
                Console.WriteLine(i2);//unboxing 拆箱操作
            }

            //泛型
            var list = new List<int>();
            list.Add(4);//no boxing 不需要装箱操作,因为value的type在List<int>中已经指定。
            int i1 = list[0];//不需要再使用(int)进行拆箱操作。
            foreach (int i2 in list)
            {
                Console.WriteLine(i2);//不再需要拆箱操作。
            }

安全性,指的是类型安全

            //非泛型
            var list = new ArrayList();
            list.Add(44);
            list.Add("String");
            list.Add(new Class());
            //没有指定类型的情况下,集合中可以添加任意的类型,添加时不会有异常,但是在遍历时会引发异常
            //泛型
            var list = new List<int>();
            list.Add(44);
            list.Add("String"); //compile time error

 

转载于:https://www.cnblogs.com/sheldon-blog/p/8093279.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值