zoukankan      html  css  js  c++  java
  • 第十章 属性

    z属性

    本章也比较简单稍作介绍:

    1. 无参属性就是我们常见的属性

       可以封装属性、以线程安全方式访问

    1. 有参属性就是C#中的所引器
    2. 匿名类型

       如图遇到如下代码

      具体点就是:

     

     

    上面的注释也已经讲清楚了,定义的类型之后,构造实例,然后初始化属性。现在详细说下

    编译器接收到 上图代码,先用var 定义一个类型,但是不具体指定什么类型,完全由后面的表达式 expression等来推断,上图中 “Jeff”的类型来推断,怎么推断呢。看到Name、Year后会创建这些推断类型的私有字段,并且为每个字段创建公共只读属性,和一个构造器构造器接收这些表达式传值,初始化私有只读字段,此外还重写了并重写Object的Equals(判断每个字段是否都想等),GetHashCode(根据每个字段的哈希码生成哈希码)和ToString(返回“属性=值”对的以逗号分隔的列表)。如图

     

    因此凡是多个匿名类型,并且匿名类型具有相同的结构那么,编译器仅会创建一个匿名类型。

    1. 元组

       泛型类型,继承于Object 区别在于元数,一经创建不可改变,访问通过item访问。

     

    1. 索引器

      有参属性,不做深入讨论

    1. JIT优化

       对于简单的get,set访问编译器会将代码内联注意是简单的get,set.这样使用属性就没有性能消耗,因为内联到方法的调用的地方了。避免了方法调用时候产生的开销,但是属性内联到方法的调用地方,那么方法就变的比较大了。因此才用简单的get,set访问器的使用会使本机代码变小,因此执行的更快。注意是简单的get,set。

  • 相关阅读:
    清北学堂 清北-Day1-R1-Count
    清北学堂 清北-Day1-R2-监听monitor
    LuoGu P2420 让我们异或吧
    Milk(sort+结构体)
    开门人和关门人(结构体+sort)
    python-神奇的下划线
    python-pathlib
    python-文本字符串
    python-闭包
    进制-Iterative-进制转换
  • 原文地址:https://www.cnblogs.com/LiMin/p/10832799.html
Copyright © 2011-2022 走看看