zoukankan      html  css  js  c++  java
  • 《C#从现象到本质》读书笔记(三)第3章C#类型基础(下)

    《C#从现象到本质》读书笔记第3章C#类型基础(下)

    常量以关键字const修饰。C#支持静态字段(类型字段)和实例字段。

    无参属性的get方法不支持参数,而有参属性的get方法支持传入一个或更多参数,set方法支持传入两个或更多参数。

    通过属性的封装,保留了它与外部交互的能力,又实现了一种可靠的读写机制。

    static关键字只能用于类而不能用于结构。

    不能显式地为结构声明无参数地构造函数。

    静态构造函数的目的是为了安全地给静态成员赋值。

    当创建第一个实例之前,堆上没有类型对象,所以要调用静态构造函数;引用静态成员之前,堆上也没有类型对象,而静态成员属于类型对象的一部分,所以也要调用静态构造函数。这两种情况的最终结果,都是堆上最终出现了一个类型对象。因为类型对象只需要建立一次,所以静态构造函数也只能运行一次。

    对象类型(object类型)是所有其它类型的基类,C#中的所有类型都直接或间接地从object 类中继承。

    静态构造函数只负责初始化静态成员,为类型对象的创建而服务。

    在C#中,方法的调用方式有:

    1)直接调用(实例方法则必须先要有一个实例)。2)反射调用。3)Calli调用。4)委托调用。5)异步调用。6)表达式调用。

    C#的默认方式是按值传递,若传递对象是值类型,则按值传递之后,传递进方法的不过是值得副本而已,方法外部的对象不受影响。按引用传递之后,传递进方法的是值类型的地址,方法外部的对象会受影响。实际上,按引用传递是按值传递的一种特殊情况(引用是地址,地址也是值)。

    ref需要事先赋值,而out必须在方法返回之前赋值。

    Gettype方法可以获得对象指向的类型对象的类型。

    一个对象是什么类型取决于它在初始化时,它左边的类型(编译时类型),而不是new后边所跟的类型(运行时类型)。

    gettype返回运行时类型。

    对象只具有编译时类型所具有的成员,如果强行去访问运行时类型的成员,会无法编译通过。

  • 相关阅读:
    第三周作业
    xxx生成式
    生成器
    迭代器
    叠加多个装饰器的执行原理
    装饰器——有参装饰器
    装饰器
    修改linux主机名称
    安装nagios出现的两个错误记录
    导入CSV文件之后出现换行符问题
  • 原文地址:https://www.cnblogs.com/Lvkang/p/9691957.html
Copyright © 2011-2022 走看看