第5章 泛型

5.1 泛型概述

在拆箱时,需要使用类型强制转换运算符。

泛型的名称用字母T作为前缀。

5.2 创建泛型类

public class LinkedList<T> : IEnumerable<T>
{
      public IEnumerator<T> GetEnumerator()
      {

      }
}

5.3 泛型的功能
1  通过default关键字,将null赋予引用类型,将0赋予值类型。

T doc = default(T);
return doc;

2 约束

public class Documentmanager<TDocument>
    where TDocument : IDocument

3 继承

public class Derived<T> : Base<T>

public class IntCalc : Calc<int>

4 静态成员

5.4 泛型接口

使用泛型可以定义接口,在接口中定义的方法可以带泛型参数。

5.4.1 协变和抗变

5.5 泛型结构

Nullable<T>

5.6 泛型方法

第5章 泛型,布布扣,bubuko.com

时间: 2024-10-12 20:51:51

第5章 泛型的相关文章

C++ Primer 读书笔记:第11章 泛型算法

第11章 泛型算法 1.概述 泛型算法依赖于迭代器,而不是依赖容器,需要指定作用的区间,即[开始,结束),表示的区间,如上所示 此外还需要元素是可比的,如果元素本身是不可比的,那么可以自己定义比较函数. 2.常用的泛型算法函数: fill,fill_n, copy, replace, sort, unique, count_if, stable_sort 此外在有一个谓词函数会结合以上的函数使用,像sort, count_if等 3.再谈迭代器 (1)插入迭代器 back_inserter, f

第十一章 泛型算法 C++ PRIMER

vector<int>::const_iterator result = find(vector.begin(). vector.end(),search_value); 如果查找失败,分会end()  如果有两个,会返回哪一个的迭代器? int *reauslt = find(ia,ia+6,search_value); 也可以同样处理字符串 算法要以<algorithm><numeric>,依赖于迭代器和迭代器的算法实现,算法可能改变值,可能移动元素,单从不直接添加

C++ Primer学习总结 第10章 泛型算法

第10章 泛型算法 1.    find()泛型算法使用示例: 2.    只读算法accumulate:对所给范围的元素求和并返回. 注意accumulate的第3个参数决定着它的返回类型. 即如果第3个参数是double,就算迭代器里都是int,最终还是返回double类型的数. 3.    只读算法equal:比较前两个迭代器表示范围的所有元素是否与第3个迭代器表示的对应位置的元素都相同,如果相同返回true.两个容器类型可以不同,保存的元素类型也可以不同,只要元素之间可以比较即可.如st

第08章 泛型

1 /***************** 2 ***第08章 泛型 3 *******知识点: 4 **************1.泛型定义 5 **************2.泛型使用 6 ******************2.1 普通泛型 7 ******************2.2 类型通配符 8 ******************2.3 受限泛型 9 ******************2.4 泛型接口.类.方法 10 ******************2.5 泛型数组 11 *

《JAVA编程思想》学习笔记——第十五章 泛型

在面相对象编程中,多态算是一种泛化机制. 泛型实现了参数化类型的概念. 泛型的主要目的之一就是用来指定容器要持有什么类型的对象,而且由编译器来保证类型的正确性. 元组 仅一次方法调用就能返回多个对象,你应该经常需要这样的功能吧.可是return语句只允许返回单个对象.因此,解决方法就是创建一个对象,用它来持有想要返回的多个对象.例: public class TwoTuple<A,B> {} public class ThreeTuple<A,B,C> extents TwoTup

第二十一章 泛型(generic)

(1)引言 泛型:是指参数化类型的能力. 例如:有这样一个类:这是一个比较简单并且是很常用的带有泛型的方法. package com.lidd.generic; public class GenericTestSecond { public <T>void one(T t){ } } 下面是几个类,分别是一般类.抽象类.接口(接口也是特殊的类). package com.lidd.generic; public class A { } package com.lidd.generic; pub

C++primer第十一章 泛型算法

标准库容器定义的操作非常少.标准库没有给容器添加大量的功能函数,而是选择提供一组算法,这些算法大都不依赖特定的容器类型,是“泛型”的,可作用在不同类型的容器和不同类型的元素上. 因为它们实现共同的操作,所以称之为“算法”:而“泛型”指的是它们可以操作在多种容器类型上——不但可作用于 vector 或 list 这些标准库类型,还可用在内置数组类型.甚至其他类型的序列上. 11.1. 概述 假设有一个 int 的 vector 对象,名为 vec,我们想知道其中包含某个特定值.解决这个问题最简单的

第12章 泛型

泛型(generic)是CLR和编程语言提供的一种特殊机制,它支持另一种形式的代码重用,即算法重用. 简单的说,开发人员先定义好一个算法,比如排序.搜索.交换.比较或者转换等.但是,定义算法的开发人员并不设定该算法要操作什么数据类型.该算法可以广泛地应用于不同类型的对象.然后,另一个开发人员,只有指定了算法要操作的具体数据类型,就可以开始使用这个现成的算法了.例如,可以用一个排序算法来操作Int32和String等类型对象. 大多数算法都封装在一个类型中,CLR允许创建泛型引用类型和泛型值类型,

编写高质量代码:改善Java程序的151个建议(第7章:泛型和反射___建议98~101)

建议98:建议的采用顺序是List<T>.List<?>.List<Object> List<T>.List<?>.List<Object>这三者都可以容纳所有的对象,但使用的顺序应该是首选List<T>,次之List<?>,最后选择List<Object>,原因如下: (1).List<T>是确定的某一个类型 List<T>表示的是List集合中的元素都为T类型,具体类型在