信息管理与信息系统专业 3.泛型 任课教师:吕雅丽
信息管理与信息系统专业 任课教师:吕雅丽 3. 泛型
本章内容 泛型的含义 如何使用. NET Framework提供的一些泛型类 如何定义自己的泛型 变体如何与泛型一起工作
本章内容 泛型的含义 如何使用.NET Framework提供的一些泛型类 如何定义自己的泛型 变体如何与泛型一起工作
3.1泛型的含义 基本集合类(比如 ArrayList)是没有类型化的,需要把 ob ject项转 换为集合中实际存储的对象类型,类型转换中容易导致异常。 可以定义强类型化的集合类,即定义派生于 Collect ionBase的集合 类(比如上一章的 An i mals集合类),其拥有自己的方法。 每创建一个类,需要类实例集合时需要: 使用已有的集合类,该集合类可以包含新创建的类类型成员; 或者,创建一个新的集合类。 ■简化这一过程可以使用泛型类,集合类特别适合定义成 泛型类。 ■泛型可以是泛型类、泛型接口、泛型方法等
3.1 泛型的含义 基本集合类(比如ArrayList)是没有类型化的,需要把object项转 换为集合中实际存储的对象类型,类型转换中容易导致异常。 可以定义强类型化的集合类,即定义派生于CollectionBase的集合 类(比如上一章的Animals集合类),其拥有自己的方法。 每创建一个类,需要类实例集合时需要: 使用已有的集合类,该集合类可以包含新创建的类类型成员; 或者,创建一个新的集合类。 简化这一过程可以使用泛型类,集合类特别适合定义成 泛型类。 泛型可以是泛型类、泛型接口、泛型方法等
31使用泛型 ■值类型与引用类型的一个重要区别是:值类型必须包含 个值,不能使用未赋值的变量。引用类型可以是nu|。 有时让值类型为空是很有用的,尤其是处理数据库数据 ■泛型使用 System.№ ulab|e<T>类型提供了使值类型为空 的方式。格式: System.Nu||ab|e<类型名>变量名; 例如: System. Nul lab le<int>intA; intA=nul I
3.1 使用泛型 值类型与引用类型的一个重要区别是:值类型必须包含 一个值,不能使用未赋值的变量。引用类型可以是null。 有时让值类型为空是很有用的,尤其是处理数据库数据 时。 泛型使用System.Nullable<T>类型提供了使值类型为空 的方式。格式: System.Nullable<类型名> 变量名; 例如:System.Nullable<int> intA; intA=null;
311可空类型 可以使用属性 Hasvalue判断其是否有值。 例如: System. Nullable<int>intA; intA=nuli: intA=8 if (intA Has Value) I ■可以使用属性Vaue查看可空类型的值。如果 Hasa|ue是 false,访问 Value属性会抛出异常 简化写法: int? intA
3.1.1 可空类型 可以使用属性HasValue判断其是否有值。 例如:System.Nullable<int> intA; intA=null; intA=8; if(intA.HasValue) { … } 可以使用属性Value查看可空类型的值。如果HasValue是 false,访问Value属性会抛出异常。 简化写法: int?intA;