zoukankan      html  css  js  c++  java
  • 初始化器

    1. 对象初始化器

    若定义匿名类型,则必须使用对象初始值设定项

    //声明一个 StudentName 显示调用2参构造函数 
    StudentName student1 = new StudentName("Craig", "Playstead");
    
    //声明一个 StudentName对象初始化器,在声明中触发默认构造器,而不是2参的构造器
    StudentName student2 = new StudentName
    {
        FirstName = "Craig",
        LastName = "Playstead",
    };
    //声明一个 StudentName对象初始化器,不需要相应的构造函数,只有默认构造器来初始化对象
    StudentName student3 = new StudentName
    {
        ID = 183
    };
    
    //没有相应的构造函数
    StudentName student4 = new StudentName
    {
        FirstName = "Craig",
        LastName = "Playstead",
        ID = 116
    };
    //或者
    StudentName student5 = new StudentName(){FirstName = "Craig", LastName = "Playstead",};
    StudentName student6 = new StudentName("Craig", "Playstead"){ ID = 183 };

    public class StudentName
    {
    // 默认构造函数 ,在对象初始化器初始化时触发
    // 如果类中自定义了带参数的构造函数,编译不会生成默认的构造函数
    // 如果没有默认的构造函数,则使用对象初始化时就会报错:没有实现无参的构造函数
    // 更改public 为 private. 用对象初始化器会失败
    public StudentName() { }

    public StudentName(string first, string last)
    {
    FirstName = first;
    LastName = last;
    }

    public string FirstName { get; set; }
    public string LastName { get; set; }
    public int ID { get; set; }

    public override string ToString()
    {
    return FirstName + " " + ID;
    }
    }

    2.集合初始化器

    集合初始值设定项是一系列由逗号分隔的对象初始值设定项。

    List<StudentName> students = new List<StudentName>()
    {
      new StudentName {FirstName="Craig", LastName="Playstead", ID=116},
      new StudentName {FirstName="Shu", LastName="Ito", ID=112},
      new StudentName {FirstName="Gretchen", LastName="Rivas", ID=113},
      new StudentName {FirstName="Rajesh", LastName="Rotti", ID=114}
    };
    //或者
    List<StudentName> students = new List<StudentName>
    {
      new StudentName {FirstName="Craig", LastName="Playstead", ID=116},
      new StudentName {FirstName="Shu", LastName="Ito", ID=112},
      new StudentName {FirstName="Gretchen", LastName="Rivas", ID=113},
      new StudentName {FirstName="Rajesh", LastName="Rotti", ID=114}
    };

    3.匿名类型

    //匿名类
    var person = new { Name = "learning hard", Age = 25 };
    // 定义匿名类型数组
    var personcollection = new[] 
    {
        new {Name ="Tom",Age=30},
        new {Name ="Lily", Age=22},
        new {Name ="Jerry",Age =32},    
    };
  • 相关阅读:
    代码片段:ASCII纯数字文本数据转二进制格式
    Caffe使用CMake编译:Could Not find Boost
    Cannot uninstall '***'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.
    Ubuntu 14.04避雷系列:升级python到最新2.x版本
    过程记录:安装原版windows7
    代码片段:Shell脚本实现重复执行和多进程
    代码片段:基于STL实现的读取纯数字文本文件
    E: GPG 错误:http://developer.download.nvidia.com Release: 下列签名无效: NODATA 1 NODATA 2
    软件项目管理复习题要
    html转义字符表
  • 原文地址:https://www.cnblogs.com/dennysong/p/5585227.html
Copyright © 2011-2022 走看看