C#3.0 对象与集合初始化器(Object and Collection Initializers)
来源:互联网 发布:淘宝乐高拼装玩具大全 编辑:程序博客网 时间:2024/05/16 14:34
对象初始化器 (Object Initializers) :
.NET2.0框架中的类型非常依赖于属性。当生成对象实例和使用新的类型时,在.Net2.0时候我们像这样写:
在VS2008中,编译器会自动地生成合适的属性setter代码,使得原来几行的属性赋值操作可以在一行完成。我们可以这样简化:像这样,对象初始化器由一系列成员对象组成,其对象必须初始化,用逗号间隔,使用{}封闭。
又例如,我把二个人加到一个基于泛型的类型为User的List集合中: 如果有相同名字和类型的两个对象初始化器将会产生相同的实例,可以相互赋值。例如:
除了在初始化类时设置简单的属性值外,对象初始化器特性也允许我们设置更复杂的嵌套(nested)属性类型。例如我们可以在上面定义的User类型同时拥有一个属于Address类型的叫“Address”的属性:
集合初始化器(Collection Initializers):
集合初始化器由一系列集合对象组成,用逗号间隔,使用{}封闭。
集合初始化器可以简化把几个对象一起添加到一个集合,编译器会自动为你做集合插入操作。例如我把七个数加到一个基于泛型的类型为int的List集合中
对象与集合初始化器要点
- 对象初始化器实际上利用了编译器对对象中对外可见的字段和属性进行按序赋值。
- 对象初始化器允许只给一部分属性赋值,包括internal访问级别
- 对象初始化器可以结合构造函数一起使用,并且构造函数初始化先于对象初始化器执行。
- 集合初始化器会对初始化器中的元素进行按序调用ICollection<T>.Add(T)方法。
- 注意对象初始化器和集合初始化器中成员的可见性和调用顺序。
- 对象与集合初始化器同样是一种编译时技术。
- C#3.0 对象与集合初始化器(Object and Collection Initializers)
- C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
- C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
- C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
- C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
- C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
- C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Extension Methods(扩展方法)
- 步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Ext
- 步步为营VS 2008 + .NET 3.5(3) - C# 3.0新特性之Automatic Properties(自动属性)、Object Initializers(对象初始化器)、Collection Initializers(集合初始化器)和Ext
- C#3.0之对象与集合初始化
- C# 对象初始化器与集合初始化器的若干问题
- 类初始化器 (Initializers)
- C#3.0中对象初始化器和集合初始化器
- 对象与集合初始化器
- 对象初始化器与集合初始化器
- C#3.0新体验(三) 对象与集合初始化器
- C# 对象和集合初始化器
- C#对象和集合初始化器
- spring mvc MultiActionController !!!
- readyState的五种状态详解
- 做一个懒惰的程序员
- Struts2原理
- 在Ubuntu下使用adb
- C#3.0 对象与集合初始化器(Object and Collection Initializers)
- 超级俄罗斯方块V1.0说明文档
- ajax核心代码(转载)
- 一定要看的 Android 资源目录的相关知识 raw drwable values
- Linux内存管理-高端内存
- 字符串一旦碰到*号就会一直读下去,知道碰到/0,对不对
- Effects with the Pixel Bender Toolkit – Part 8: Controlling the displacement filter with mouse positioning
- varchar 和nvarchar
- 在vc++ 中调用Matlab engine的一些心得(关于libeng.lib无法找到的问题)