C#3.0新特性之对象初始化器

来源:互联网 发布:淘宝李宁三号店 是高仿 编辑:程序博客网 时间:2024/06/02 09:48

对象初始化器用于指定对象的一个或多个可访问的字段或属性的值,通过{}进行封闭起来,多个字段赋值之间通过逗号分割。具体语法元素是:

  1. 对象创建表达式:

             new 类型(类型参数可选)对象或集合初始化器可选

             new 类型 对象或集合初始化器

  2.  对象或集合初始化器:

                  对象初始化器

                  集合初始化器

  3. 对象初始化器:

                  {对象成员初始化器列表}

  4. 对象成员初始化器列表:

                  对象成员初始化器

                  对象成员初始化器列表,对象成员初始化器

  5. 对象成员初始化器:

                  标识符 = 初始化值

      6.初始化值:

                  表达式

                  对象或成员初始化器

       注意:对象或成员初始化器是可以嵌套的,并且初始化器是不包含new关键字的。初始化器不能用于结构,初始化器中每个成员最多只能初始化一次。示例:

public class Point
{
        public int X getset; }

        public int Y getset; }

}
public class Rectangle
{
        Point p1 = new Point{ X = 1,Y = 2 }
;
        Point p2 = new Point{X=3,Y=3}
;
        public Point P1 get return p1; } set { p1 = value; } }

        public Point P2 get return p2; } set { p2 = value; } }
}

Rectangle r2 = new Rectangle() { P1 =new Point { X = 5, Y = 6 }, P2 = { X = 7, Y = 8 } };


 请注意r2的初始化中的不同。