c#泛型----简单讲讲如何在编程中使用泛型及其集合类

本文介绍了泛型编程的三大好处:减少代码重复性、避免装箱拆箱操作提高效率及提供泛型集合类便利编程。通过实例展示了如何使用泛型简化编程任务。

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

           区分一个优秀的编程人员标准有很多,无疑会不会使用泛型也是其中一个标准。为什么。原因很简单,使用泛型,使你的代码更精简更高效。不信,请看下面介绍的泛型的三大好处。

          讲之前,先说说,什么是泛型。顾名思义,就是比较广泛的数据类型。没错,泛型是数据类型的一种通用的表达方式,它可以代表任何一种数据类型。

 

         (一)泛型好处一:减少代码的重复性,或者说提高了重用性。

          例如:如果要定义一个交换函数,你要考虑要交换的数据的类型,可以是int,double,string等等。那么,如果你不懂得泛型,就得写n个交换函数了,类似于重载。如下:

如果使用泛型,只需要一个就可以,如下:

代码是不是少了很多。这也是那么多人喜欢用泛型的原因:偷懒哦。

 


          (二)泛型的好处二:减少繁复的装箱拆箱操作,提高代码的效率性以及避免装箱拆箱过程中的风险性。(所谓的装箱和拆箱,简单地说,就是值类型与Object类型间的相互转化)

           例如:拿ArrayList集合做个例子(或许你看过这个例子,其实就是那个例子,这里抄袭下,偷偷懒)

              box操作就是装箱,具体过程是把值类型从栈中弹出,放入堆中,同时把在堆中的地址压入到栈中,频繁出现这样的操作,成本比较大。如果使用泛型,那么就避免了装箱拆箱的麻烦,因为已经明确好它的类型,类似数组的定义,等把数据从栈中拿出来,也就没必要拆箱了。代码如下:

 


                 (三)泛型的好处三:提供了一系列泛型集合类,方便了平时的编程,提高了效率,减少了代码量。下面给出几个常用的泛型集合类及对应的非泛型集合类。(手打的,或许有错,别介意)

 

常见的泛型集合类及对应的非泛型集合类
泛型集合非泛型集合泛型集合用法举例
List<T> ArrayList List<string> list1 = new List<string>();
Dictionnary<TKey,Tvalue> Hashtble

 Dictionary<int,string> dictionary1 = new Dictionary<int,string>(); 

dictionary1.Add(1, "bookName1");

 Queue<T> Queue

 Queue<string> queue1 = new  Queue<string>();

queue1.Enqueue("one");

 Stack<T> Stack

 Stack<string> stack1 = new  Stack<string>();

s.Push("a");

s.Pop();

 SortedList<TKey,TValue> SortedList

 SortedList<string,string> sortedlist1 = new  SortedList<string,string>();sortedlist1.Add("one", "Tom");

sortedlist1.TryGetValue("two", out value);

 

                      这里举个应用的例子,例如使用SortedList<TKey,TValue>泛型集合类,它是对插入里面的数据按关键字排序,及按TKey排序。代码如下:

输出结果为:

 


             (四)最后,通过展示一个泛型在数据数据库编程应用的实例(使用Access做数据源),把学到的内容串一串。代码如下:

 

 

             运行结果图:

 

              这里讲完了,希望对大家有用!有机会,继续讨论泛型更深入的应用。

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值