C#3.0对象初始化器和匿名类型
2008-03-15 16:06
246 查看
一、对象初始化器
C#3.0允许new操作符与匿名对象初始化器联用来创建一个匿名类型的对象。如下有一个Customer类的定义。
public class Customer
{
public string CustomerID { get; set; }
public string CustomerName { get; set; }
public DateTime CustomerBirthday { get; set; }
}
在C#2.0及以前的版本中如果需要创建一个Customer类的实例,并初始化类的成员需要以下的操作:
Customer c1 = new Customer(); c1.CustomerID = "C0001"; c1.CustomerName = "NewCustomer"; c1.CustomerBirthday = DateTime.Now; |
var c2 = new Customer() { CustomerID = "C0001", CustomerName = "NewCustomer", CustomerBirthday = DateTime.Now }; |
在第一个和第二个红色框中调用了Customer类的构造方法,然后逐一的对属性进行赋值。由此可见两中初始化对象的方式完全一样。
二、匿名类型
C#3.0允许new操作符与匿名对象初始化器联用来创建一个匿名类型的对象。匿名对象初始化器声明一个匿名类型并返回这个类型的实例。当我们在程序中声明这样的匿名类型时var cu = new { CustomerID = "C0001", CustomerName = "NewCustomer", CustomerBirthday = DateTime.Now }; |
<>f_AnonymousType0`3<`CustomerID>j__TPar','<CustomerName>j__TPar','<CustomerBirthday>j__TPar'> |
.locals init ([0] class ConsoleApplication1.Customer c1, [1] class ConsoleApplication1.Customer c2, [2] class '<>f__AnonymousType0`3'<string,string,valuetype [mscorlib]System.DateTime> cu, [3] class ConsoleApplication1.Customer '<>g__initLocal0') |
相关文章推荐
- C#3.0笔记(四)对象初始化器与匿名类型
- 谈谈”隐藏类型局部变量、扩展方法、对象与集合初始化器、匿名类型“
- 对象初始化器、集合初始化器、自动属性、匿名类型
- [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
- c#语法糖代码——自动属性, 匿名类型,对象与集合初始化器,扩展方法
- C#特性 学习笔记(对象初始化器 匿名类型 扩展方法)
- [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
- Visual Basic 9.0 前沿播报·静态篇(二)对象初始化器和匿名类型
- [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型
- [C#基础知识]专题十三:全面解析对象集合初始化器、匿名类型和隐式类型 推荐
- C#3.0 中 隐式类型变量、匿名类型
- 详解C# 匿名对象(匿名类型)、var、动态类型 dynamic
- C#3.0新特性(三)-详说自动属性和匿名类型
- [C# 3.0] 传递匿名类型对象的问题
- C#3.0中自动属性和对象初始化器
- C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
- C#中的自动属性、隐式类型var、对象初始化器与集合初始化器、扩展方法
- C#3.0 中对象初始化器(Object Initializers)和集合初始化器(Collection Initializers)
- C#3.0亮点 —— 关键字var和匿名类型
- C#3.0学习(2)---对象集合初始化器