《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返回运行时类型。

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

《C#从现象到本质》读书笔记(三)第3章C#类型基础(下)的更多相关文章

  1. Linux 读书笔记 三 (第二章)

      一.学习目标 1. 理解二进制在计算机中的重要地位 2. 掌握布尔运算在C语言中的应用 3. 理解有符号整数.无符号整数.浮点数的表示 4. 理解补码的重要性 5. 能避免C语言中溢出,数据类型转 ...

  2. 《深入理解java虚拟机》读书笔记三——第四章

    第四章 虚拟机性能监控与故障处理工具 1.JDK命令行工具 jps命令: 作用:列出正在运行的虚拟机进程. 格式:jps [option] [hostid] 选项:-q 只输出LVMID(Local ...

  3. 《深入理解bootstrap》读书笔记:第4章 CSS组件(下)

    十. 标签(.label类,label-xxx) 高亮一些标题部分. 1 2 3 4 5 6 <h1>HELLO<span class="label label-defau ...

  4. C#图解教程读书笔记(第4章 类:基础)

    类成员包括数据成员和函数成员. 和C/C++不同,C#在类型的外部不能声明全局变量,所有的字段都属于类型,而且必须在类型声明内部声明. 和C/C++不同,方法没有返回默认类型,所有方法必须包含返回类型 ...

  5. 《C#从现象到本质》读书笔记(二)第2章 C#类型基础(上)

    <C#从现象到本质>读书笔记第二篇 第2章 C#类型基础(上) 类型指的是集合{类,结构,接口,枚举,委托}中的任意一个成员.任何拥有某类型的值(value)称为某类型的一个实例(inst ...

  6. 【转载】MDX Step by Step 读书笔记(三) - Understanding Tuples (理解元组)

    1. 在 Analysis Service 分析服务中,Cube (多维数据集) 是以一个多维数据空间来呈现的.在Cube 中,每一个纬度的属性层次结构都形成了一个轴.沿着这个轴,在属性层次结构上的每 ...

  7. 《Android开发艺术探索》读书笔记 (13) 第13章 综合技术、第14章 JNI和NDK编程、第15章 Android性能优化

    第13章 综合技术 13.1 使用CrashHandler来获取应用的Crash信息 (1)应用发生Crash在所难免,但是如何采集crash信息以供后续开发处理这类问题呢?利用Thread类的set ...

  8. 《Android开发艺术探索》读书笔记 (3) 第3章 View的事件体系

    本节和<Android群英传>中的第五章Scroll分析有关系,建议先阅读该章的总结 第3章 View的事件体系 3.1 View基本知识 (1)view的层次结构:ViewGroup也是 ...

  9. 《Linux内核设计与实现》读书笔记——第一、 二章

    <Linux内核设计与实现>读书笔记--第一. 二章 标签(空格分隔): 20135321余佳源 第一章 Linux内核简介 1.Unix内核特点 十分简洁:仅提供几百个系统调用并且有明确 ...

随机推荐

  1. Shiro+CAS

    参考链接: CAS实现单点登录SSO执行原理探究:http://blog.csdn.net/javaloveiphone/article/details/52439613 单点登录CAS技术概述:ht ...

  2. 关于ARM Linux下的SD卡及U盘的挂载问题

    内核配置并运行后,挂载SD卡,出现问题: zynq> mount -t /dev/mmcblk1 /mntmount: mounting /dev/mmcblk0 on /mnt failed: ...

  3. Mybatis调用数据库的存储过程和方法

     转载. https://blog.csdn.net/ml0228123/article/details/81002258   上次的项目,要求我用java代码调用存储过程,折腾了好久.最后总算成功了 ...

  4. python3之time、datetime、random

    UTC:协调世界时,又称世界统一时间.世界标准时间.国际协调时间.由于英文(CUT)和法文(TUC)的缩写不同,作为妥协,简称UTC. 中国属于东八区,领先世界时间8小时 time模块 time.ti ...

  5. android 开发 View _8_ 动态图片自定义View

    转载地址:https://blog.csdn.net/mengks1987/article/details/77770922 先来看下效果: 是不是有一种熟悉感,其实这种效果使用序列帧动画也是可以实现 ...

  6. centos密码策略

    centos7密码策略 https://blog.csdn.net/qq_36896749/article/details/80264280 centos7设置密码规则 https://blog.cs ...

  7. LVM逻辑卷疑问?

    创建完逻辑卷后,删除以/dev/vdb1和/dev/vdb2为基础的分区后,逻辑卷依然生效???

  8. ssh服务器配置

    使用如下终端命令可以在 Linux 主机中安装 ssh服务器sudo apt-get install openssh-server lin@lin-machine:~$ sudo apt-get in ...

  9. 搭建mxnet-gpu docker的pyhon remote kernel

    起因 最近看mxnet的东西,打算给实验室的机器装一个mxnet的环境,无奈实验室里面机器已经装了tensorflow,运行了好久了,环境比较老.而mxnet可是支持最新的cuda9.1和cudnn7 ...

  10. git从远程分支clone项目到本地,切换分支命令,其他常用命令

    1.在git命令窗口输入git clone git@139.129.217.217:sg/sgsq_cms.git 回车,即可克隆远程项目到本地.红色字体为远程分支的SSHkey,可以登录到gitli ...