C#对象初始化器描述

开发 后端
这里介绍C#对象初始化器特性也允许我们设置更复杂的嵌套(nested)属性类型。例如我们可以在上面定义的User类型同时拥有一个属于Address类型的叫“Address”的属性。

C#新语言特性有很多值得学习的地方,这里我们主要介绍C#对象初始化器,包括介绍基于泛型的类型为User的List集合等方面。

C#对象初始化器 (Object Initializers) :

.NET2.0框架中的类型非常依赖于属性。当生成对象实例和使用新的类型时,在.Net2.0时候我们像这样写:

  1. User user = new User();  
  2. user.Id = 1;  
  3. user.Name = "YJingLee";  
  4. user.Age = 22

在VS2008中,编译器会自动地生成合适的属性setter代码,使得原来几行的属性赋值操作可以在一行完成。我们可以这样简化:像这样,对象初始化器由一系列成员对象组成,其对象必须初始化,用逗号间隔,使用{}封闭。

  1. User user = new User { Id = 1Name = "YJingLee"Age = 22 }; 

又例如,我把二个人加到一个基于泛型的类型为User的List集合中:

  1. List<User> user = new List<User>{  
  2. new User{Id=1,Name="YJingLee",Age=22},  
  3. new User{Id=2,Name="XieQing",Age=25},  
  4. }; 

对象初始化器调试

如果有相同名字和类型的两个对象初始化器将会产生相同的实例,可以相互赋值。例如:

  1. User user = new User { Id = 1Name = "YJingLee"Age = 22 };  
  2. User user2 = new User { Id = 2Name = "XieQing"Age = 25 };  
  3. user = user2;  

除了在初始化类时设置简单的属性值外,C#对象初始化器特性也允许我们设置更复杂的嵌套(nested)属性类型。例如我们可以在上面定义的User类型同时拥有一个属于Address类型的叫“Address”的属性:

  1. User user = new User  
  2. {  
  3. Id = 1,  
  4. Name = "YJingLee",  
  5. Age = 22,  
  6. Address = new Address  
  7. {  
  8. City = "NanJing",  
  9. Zip = 21000 
  10. }  
  11. }; 

【编辑推荐】

  1. C# const常量详细介绍
  2. C# Lambda表达式学习笔记
  3. C#隐式类型局部变量经验总结
  4. 调用C# Thread.Start()方法
  5. C# CheckStatus()方法
责任编辑:佚名 来源: 博客园
相关推荐

2009-07-31 17:51:27

C#对象初始化

2009-08-26 15:28:52

C#对象集合初始化器

2011-06-17 15:29:44

C#对象初始化器集合初始化器

2009-09-18 11:15:52

C#数组初始化

2009-08-14 17:52:27

C#对象初始化

2009-09-02 16:52:55

C#数组初始化

2009-08-24 18:01:45

C#3.0新特性

2009-09-17 16:06:22

C#数组初始化

2009-08-28 11:24:48

C#一维数组初始化

2009-09-17 16:17:41

C#参差数组初始化

2009-04-23 17:56:05

C#自动属性对象初始化

2009-08-28 11:09:35

C#数组初始化

2009-08-31 09:47:22

C#静态变量初始化

2009-08-31 10:38:34

C#变量初始化

2009-08-26 18:28:44

C#数组

2009-09-18 11:33:37

C#二维数组初始化

2023-11-12 23:08:17

C++初始化

2009-08-31 10:30:29

C#变量初始化

2009-12-16 14:04:04

Ruby对象初始化

2009-08-28 11:43:26

C#数组初始化
点赞
收藏

51CTO技术栈公众号