文章教程

3.3对象初始化器

8/31/2020 9:37:14 PM 人评论 次浏览

3.3 对象初始化器

在新的编译器中对于面向对象的编程有对象初始化器的新功能,在对象初始化时可以不用手动调用构造函数。

3.3.1 理解对象初始化器语法

自动初始化对象对于对象的匿名访问提供了方便。这里构造了一个学生类,包括姓名和性别,在初始化这个类时采用对象初始化器来构造一个学生对象,代码如下。

alt

运行结果如图3-8所示。

alt

图3-8 简单对象初始化器的赋值

这里使用初始化器的写法初始化了一个学生对象,为其两个属性赋值。这样对于面向对象的编程方式来说,省了很多代码。

3.3.2 调用使用初始化语法的自定义构造函数

在使用对象初始化器初始化对象时,可以调用默认的构造函数和自定义的构造函数,但语法上略有不同。下面一段代码说明了调用自定义的构造函数。

alt

首先构造一个学生类,包括三个构造函数:一个默认构造函数;一个使用字符串初始化的构造函数;一个使用数值类型初始化的构造函数。下面使用对象初始化器调用字符串的构造函数,代码如下。

alt

程序运行结果如图3-9所示。单击Button按钮为学生姓名赋值,并输出学生姓名。

alt

图3-9 自动属性索引器的自定义构造函数

3.3.3 内部类型的初始化

在使用初始化器初始对象时,也可以初始化对象内部的属性,比如,初始化学生类的同时,为内部学生姓名赋值,代码如下。

alt

前面构造了一个BJschool类,在内部有两个学生,分别为OneStudent和TwoStudent。在使用这个类时可以同时初始化这两个学生,并为其分别赋值,代码如下。

alt

运行结果如图3-10所示。

alt

图3-10 内部类型的初始化

这里分别为两个内部对象初始化了名称和性别,并输出其各自的名称。

3.3.4 理解集合初始化语法

.NET Framework提供了用于数据存储和检索的专用类,这些类提供对堆栈、队列、列表和哈希表的支持。大多数集合类实现相同的接口,可继承这些接口来创建适应更为专业的数据存储需要的新集合类。在新的编译器中也可以使用更多的集合类和泛类集合。下面代码说明了集合和泛类集合的初始化方法。

alt

前面演示了几种集合的初始化方法,其中,使用了泛类集合的初始化方法,下面用泛类初始化学生类,代码如下。

alt

输出结果如图3-11所示。

alt

图3-11 集合的初始化结果

教程类别