之前学习数组声明时,就有一种声明方式是 int[] nums=new int[] { 1, 2, 3, 4, 5 };其数组元素赋值相当于nums[0]=1;而对象初始化器与此类似,只不过对象初始化器是在实例化对象时为对象的属性进行赋值;先看如下案例
对象初始化器及案例
首先定义一个Person类,类中只有两个自动属性(便于截图),初始化器主要的是new Person();后面的大括号,在大括号中按空格键就会提示要赋值的属性名,每个属性之间使用逗号隔开,赋值时有提示该属性是什么类型的,而且被赋值后的属性名不再提示为其赋值,使用非常方便
对象初始化器与构造方法的的区别如下
相同点:都是可以对对象的属性值进行初始化赋值
不同点:
1)构造方法有强制性,方法参数必须赋值;对象初始化器没有强制性,其中属性可赋可不赋
2)对象初始化器只能对属性(公有的)进行初始化,而构造方法可以对对象任意成员(包括公有与私有还有其他的等)进行初始化工作
3)对象初始化器在创建对象的时候使用,构造方法是写在类里面的
4)构造方法.NET版本就有,对象初始化器只能在.NET3.0以上版本使用
5)使用对象初始化器对象必须有一个无参的构造方法,如果没有编译时就会报错;构造方法只要有就行不管是不是有无参数(其构造方法都必须是公有的)