zoukankan      html  css  js  c++  java
  • 对象和集合初始化器

    example1:

    Employ e=new Employ(){name="tome",age=23}

    等价于

    Employ e=new Employe();

    e.name="tome";

    e.age=23;

    example2:

    string s=new Employee(){name="tome",age=9}.tostring().toupper();

    example3:

      class ClassRoom
        {
            private List<string> m_student = new List<string>();
            public List<string> Students { get { return m_student; } }  //自动属性        
        }
      static void Main(string[] args)
            {
                ClassRoom room = new ClassRoom { Students = { "23""234" } };
                foreach(var r in room.Students)
                {
                    Console.WriteLine(r);
                }             
                Console.ReadKey();         }
    这个例子中:
       ClassRoom room = new ClassRoom { Students = { "23", "234" } };这样写是什么意思??
    我们注意到,在一个实现IEnumberable 接口的对象是一个集合,集合的初始化都是相加操作,而不是覆盖
    虽然这里面Students只是一个自动属性,但这里看着一个集合
    这里就相当于:
    ClassRoom room=new ClassRoom();
    room.Studets.add(23);

     所以这一步 ClassRoom room = new ClassRoom { Students = { "23", "234" } };就是实现一个集合,再操作集合
    再注意:初始化是,更属性中的get无关。因为本来应该是这样的
    public List<string> Students { get { return m_student; } }
    等价于: public List<string> Students;
    public Get Students{ return m_students}

    初始化只是简单的给Students赋值而已!

    我们可以看出,对于实现IEnumberable接口的属性,初始化是同过相加形成一个集合

    有的集合要获取多个实参:例如Dictionary

     Dictionary<string,string> table=new Dictionary<String,String>{

      {"tom“,”1“} ,{"tom“,”1“}  ,{”jake“,”1“}

    }

     相当于:

    Dictionary<string,string> table=new Dictionary<string,string>();

    table.add("tom","1");

    table.add("jake","1");

  • 相关阅读:
    ML与NLP的2019年度总结与展望
    python在文本开头插入一行的实例
    Git Notes
    warmup 预热学习率
    python error整理
    python 中字符串处理
    集成学习voting Classifier在sklearn中的实现
    机器学习 评价指标整理
    PaddlePaddle Notes
    linux 常用指令 文件操作trick等
  • 原文地址:https://www.cnblogs.com/fjsnail/p/3253043.html
Copyright © 2011-2022 走看看