VLR via C# 泛型

面向对象的开发人员都深谙这种编程方式的好处。其中一个好处就是“代码重用”,它极大提高了开发效率。

泛型(generic)是CLR和编程语言提供的一种特殊机制,它支持另一种形式的代码重用,即“算法重用”。

简单说,开发人员先定义好算法,比如排序、搜索、交换、比较或者转换等。但是,定义算法的开发人员并不设定该算法要操作什么数据类型;该算法可广泛地应用于不同类型的对象。然后,另一个开发人员只要指定了算法要操作的具体数据类型,就可以开始使用这个算法了。

大多数算法都封装在一个类型中,CLR允许创建泛型引用类型和泛型值类型。但不允许创建泛型枚举类型。此外,CLR还允许创建泛型接口和泛型委托。方法偶尔也封装有用的算法,所以CLR允许在引用类型、值类型或接口中定义泛型方法。

//--

比如   List<T>等

//--

泛型为开发人员提供了以下优势:

1.源代码保护

使用泛型算法的开发人员不需要访问算法的源代码。

2.类型安全

将泛型算法应用于一个具体的类型时,编译器和CLR能理解开发人员的意图,并保证只有与指定数据类型兼容的对象才能用于算法。试图使用不兼容类型的对象会造成编译时错误,或在运行时抛出异常。

3.更清晰的代码

由于编译器强制类型安全性,所以减少了源代码中必须进行的强制类型转换次数,使代码更容易编写和维护。

4.更佳的性能

没有泛型的时候,要想定义常规化的算法,它的所有成员都要定义成操作object数据类型。要用这个算法来操作值类型的实例,CLR必须在调用算法的成员之前对值类型实例进行装箱。装箱造成在托管堆上进行内存分配,造成更频繁的垃圾回收,从而损害应用程序的性能。由于现在能创建一个泛型算法来操作一种具体的值类型,所以值类型的实例能以传值方式传递,CLR不在需要执行任何装箱操作。此外,由于不再需要进行强制类型转换,所以CLR无需验证这种转型是否类型安全,这同样提高了代码的运行速度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值