C#特性-对象集合初始化器介绍

2019-12-26 11:20:52刘景俊
在写一些实体类的时候,我们往往在写构造方法的时候思考很长时间,除了一个无参构造器外还在想需要写几个构造器呢?哪些参数是需要初始化的。现在你再也不需要为这事烦恼了    

C# 3.0为你提供了对象集合初始化器:
 

  1. /// <summary>  /// 图书类 
  2. /// </summary>  public class Book 
  3. {    /// <summary> 
  4.   /// 图书名称    /// </summary> 
  5.   public string Title { get; set; }    /// <summary> 
  6.   /// 单价    /// </summary> 
  7.   public float Price { get; set; }    /// <summary> 
  8.   /// 作者    /// </summary> 
  9.   public string Author { get; set; }    /// <summary> 
  10.   /// ISBN号    /// </summary> 
  11.   public string ISBN { get; set; }  } 
  12. //对象初始化器  Book book = new Book { Title="Inside COM",ISBN="123-456-789"}; 
?

现在你想初始化几个就初始化几个,不需要出现这种情况:
 

  1. public Book():this("")  {  
  2. }  public Book(string title):this(title,0) 
  3. {  } 
  4. public Book(string title, float price):this(title,price,"")  {  
  5. }  public Book(string title, float price, string isbn) 
  6. {      this.Title = title; 
  7.     this.Price = price;      this.ISBN = isbn; 
?

这一串的构造方法都是为了应付不同的初始化情况。
好了,来看看对象初始化器编译器在后面为我们做了些什么呢?