• LINQ学前准备之对象集合初始化器


    对象初始化器为我们提供了更加简洁和方便的对象初始化方法。

    假设我们有一个对象Address需要初始化,我们的代码可能是这样的:

    #region Address Class
    public class Address
    {
    	public string City{get;set;}
    	public string State{get;set;}
    	public string ZipCode{get;set;}
    }
    #endregion
     
    #region Initial Address
    Address address = new Address();
    address.City = "New York";
    address.Staty = "NY";
    address.ZipCode = "10016";
    #endregion

    显然,如果将这种初始化方法应用于LINQ中是极为不方便且不优雅的。

    因此微软提供了对象初始化器:

    #region
    Address address = new Address{
    				City="New York",
    				State="NY",
    				ZipCode="10016"
    				};
    #endregion
     
    同样的,对于集合初始化器也采用了类似的方法:
     
    List<string> citys = new List<string>{“New York”,"Beijing”};
     
    其实,如果我们反编译代码,就会发现,当我们用对象初始化器来初始化对象的时候,C#编译器依旧会生成一个Address类型的局部变量,并调用Address的无参构造函数来初始化他,然后再对其属性进行赋值操作,最后返回这个变量。因此,我们提供的Address必须有一个无参构造函数。

     

  • 相关阅读:
    如何实现多个异步同步执行?
    Treap学习笔记
    实验
    bzoj2876 [NOI2012]骑行川藏(拉格朗日乘数法)
    [SCOI2007]最大土地面积(旋转卡壳)
    Splay学习笔记
    计算几何学习笔记
    [CQOI2006]凸多边形(半平面交)
    大数的乘法(C++)
    商人过河问题(DFS)
  • 原文地址:https://www.cnblogs.com/tian2010/p/2380943.html
Copyright © 2020-2023  润新知