zoukankan      html  css  js  c++  java
  • 《CLR.via.C#第三版》第二部分第8,9章节读书笔记(四)

    三种类型的构造方法:

    实例构造器(引用类型):实例构造器永远不能被继承(所以方法前没有修饰符);如果类的修饰符为static(sealed和abstract),编译器根本不会在类的定义中生成一个默认构造器。

    重要认知:为了使代码“可验证”,类的实例构造器在访问从基类继承的任何字段之前,必须先调用基类的构造器。如果派生类的构造器没有显示调用一个基类构造器,C#编译器会自动生成对默认的基类构造器的调用。

                  在类中声明的字段,实际在编译器中是转换成构造器中的代码执行初始化。如果一个类中有3个字段,3个构造函数,那么编译器实际生成三次初始化3个字段的代码--每个构造器一次。

    实例构造器(值类型):C#编译器不允许值类型定义无参构造器(有参的可以)。

    类型构造器(静态构造函数):只能定义一个,没有参数,可以和普通构造函数共存,作用是设置类型实例的初始状态。它的调用由CLR负责。它只执行一次(多线程时)。

    扩展方法:

    C#扩展方法:允许定义一个静态方法,并用实例方法的语法来调用它。(只需在方法的第一个参数前加this关键字)

    参数:

    声明方法的参数类型时,应尽量指定最弱的类型,最好是接口而不是基类。(讲解了ref、out、params)

    感悟:这本书讲解C#这门编程语言,都是从编译器,CLR的执行原理角度,非常深刻。这两章个人感觉没什么特别重要的内容,所以列出一些重要概念,熟知这些概念即可。

  • 相关阅读:
    oracle表解锁
    pl/sql 如何配置连接远程一个或多个数据库
    Hibernate通过自编写Sql修改
    Hibernate通过自编写sql查询
    java生成临时令牌和访问令牌
    java生成字母首位8位随机码
    [C] 创建目录_mkdir()函数
    [C] 判断目录 / 文件是否存在access()函数
    [C] getopt使用说明
    [C] Segmentation fault (core dumped)
  • 原文地址:https://www.cnblogs.com/hangwei/p/4087846.html
Copyright © 2011-2022 走看看