zoukankan      html  css  js  c++  java
  • C#3.0学习(3)匿名类型

    匿名类型是在初始化的时候根据初始化列表自动产生类型的一种机制,利用对象初始化器来创建匿名对象的对象。如:

    var oec=new {Name="oec2003", Age=100}

    在创建对象的语句中用到了var和new两个关键字,var关键字用来声明一个匿名类型的对象名字,var和Object不同,她是一种强类型,在此是起到了一个占位符的作用,编译时编译器会推断出实际类型。new关键字后直接是一对大括号,并不是类型名称,因为匿名类型的名字是在编译时由编译器自动生成。大括号里的Name和Age为匿名类型的属性,可以看到是在Name和Age的后面直接赋值,并没有指明类型,也将由编译器来推断出他们的类型,比如编译后会将Name推断为string型,Age推断为Int型。所以我们可以看到匿名类型给我们带来了很大的方面和灵活性,同时也将使代码变得不易看懂。上面的代码经过编译后会产生类似如下代码:

    class Anonymous1
    {
        private int _name = oec2003;
        private int _age = 100;
    
        public int a
        {
            get { return _name; }
            set { _name = value; }
        }
        public int b
        {
            get { return _age; }
            set { _age = value; }
        }
    }

    在同一个程序中如果定义的不同匿名类型中的对象初始化器中的名称,类型,和顺序都相同,将会长生同一个匿名类型的不同实例,如下:

    var oec1=new {Name="oec2003" ,Age=100}
    var oec2=new {Name="oec2004" ,Age=200}
    oec1=oec2

    我们可以这样来访问匿名类型中的成员

    var oec=new {Name="oec2003", Age=100}
    string name=oec.Name;
    int age=oec.Age
  • 相关阅读:
    python检索特定内容的文本文件2
    windows dll函数的导出
    python检索特定内容的文本文件
    python 建立ftp共享文件夹
    gitbook制作电子书
    MFC程序框架
    Python 中文文档下载(附下载链接)
    基于tensorflow的手写数字识别代码
    MySQL
    vue项目更新数组对象里面的属性值,实现UI界面重新渲染---$set
  • 原文地址:https://www.cnblogs.com/oec2003/p/1097615.html
Copyright © 2011-2022 走看看