C# 3.0 -对象初始化设置

  • C# 3.0 - var 隐式类型声明
  • C# 3.0 -自动属性实现
  • C# 3.0 -对象初始化设置
  • C# 3.0 -集合初始化设置
  • C# 3.0 -匿名类型
  • C# 3.0 -扩展方法
  • C# 3.0 - partial 分部(类型)
  • C# 3.0 - Lambda
  • C# 3.0 - { get; set; } 默认值
  • C# 3.0 - { get; set; } 默认值 2
  • C# 3.0 - yield

有类如下:

public class Document
{
    public string Title { get; set; }
    public string Content { get; set; }
}

C# 2.0 为 Document 对象的属性赋值,可能通过如下的方式:

Document doc = new Document();
doc.Title = "标题";
doc.Content = "内容";

用了三行代码,能不能更简洁一点呢?可以用构造函数,这的确是个办法,但也不是特别好,因为不是每种情况下构造函数都会把所有的属性列出来。C# 3.0 的对象初始化设置提供了一种方案:

Document doc = new Document { Title = "标题", Content = "内容" };
  • 去掉实例化时的小括号;
  • 增加大括号;
  • 在大括号里为需要赋值的属性赋值。

其实这段代码是这样工作的:

  • 首先,用没有参数的构造函数去实例化对象;
  • 然后,根据大括号中的属性及属性值,为对象属性赋值。
  • C# 3.0 - var 隐式类型声明
  • C# 3.0 -自动属性实现
  • C# 3.0 -对象初始化设置
  • C# 3.0 -集合初始化设置
  • C# 3.0 -匿名类型
  • C# 3.0 -扩展方法
  • C# 3.0 - partial 分部(类型)
  • C# 3.0 - Lambda
  • C# 3.0 - { get; set; } 默认值
  • C# 3.0 - { get; set; } 默认值 2
  • C# 3.0 - yield

你可能感兴趣的