[Clr via C#读书笔记]Cp8方法
Cp8方法
构造器
作用就是初始化所有成员字段;.ctor;派生类和基类都有自己的构造函数。默认有一个无参数的构造函数,值字段初始化为0,引用字段初始化为null;可以有多个构造器;
值类型的初始化其实是通过内联的方式来简化的语法;
结构的构造器
一般是new了再使用,new的含义是调用默认的构造器,不是创建引用对象;可以自己创造含参数的构造器。如果不适用new,那么结构就必须手动一个个的初始化赋值,全部赋值。
实例的构造器
就是最普通的实例构造器
类的构造器
静态构造器,用来初始化静态成员。这个没有默认的,必须手动设置。C#会自动设置为private,不需要手动设置;
任何一个类定义了静态构造器,JIT都会检查针对当前AppDomain又没有执行调用,如果有后面就不执行了,如果没有就要执行,反正确保只执行一次。
构造器运行的性能问题
这里了解一下就行了,基本上是编译器决定的。
操作符重载
特殊的方法重载
转换操作符方法
implicit和explicit;System.Decimal是一个典型的研究转换操作符的例子;
扩展方法
可以在不能修改的类上添加方法;比如后面的linq的扩展方法就是很常用的例子,实现链式调用;
实质是对一个静态方法的调用;
可以为接口实现扩展方法,任何实现了这个接口的类都可以使用到这个扩展方法。
扩展方法的规则和原则
静态类,静态方法,第一个参数必须是要扩展的类型,前面必须加this;
分部方法
类似分部类的理解方式吧,很少用到。
[Clr via C#读书笔记]Cp8方法的更多相关文章
- CLR via c#读书笔记五:方法
		
注:书本第8章:方法 实例构造器和类(引用类型) 构造器方法在“方法定义元数据表”中始终叫做.ctor(constructor的简称). 构造引用类型的对象,在调用类型的实例构造器之前,为对象分配的内 ...
 - CLR via C# 读书笔记---常量、字段、方法和参数
		
常量 常量是值从不变化的符号.定义常量符号时,它的值必须能在编译时确定.确定后,编译器将唱两只保存在程序集元数据中.使用const关键字声明常量.由于常量值从不变化,所以常量总是被视为类型定义的一部分 ...
 - Clr Via C#读书笔记---I/O限制的异步操作
		
widows如何执行I/O操作 构造调用一个FileStream对象打开一个磁盘文件-----FileStream.Read方法从文件中读取数据(此时线程从托管代码转为本地/用户模式代码)- ...
 - Clr Via C#读书笔记---计算限制的异步操作
		
线程池基础 1,线程的创建和销毁是一个昂贵的操作,线程调度以及上下文切换耗费时间和内存资源. 2,线程池是一个线程集合,供应你的用程序使用. 3,每个CLR有一个自己的线程池,线程池由CLR控制的所有 ...
 - Clr Via C#读书笔记---CLR寄宿和应用程序域
		
#1 CLR寄宿: 开发CLR时,Microsoft实际是将他实现成包含在一个dll中的COM服务器.Microsoft为CLR定义了一个标准的COM接口,并为该接口和COM服务器分配了GUID.安装 ...
 - Clr Via C#读书笔记---程序集的加载和反射
		
#1 加载程序集 Assembly.Load: public class Assembly { public static Assembly Load(AssemblyName assemblyRef ...
 - Clr Via C#读书笔记---垃圾回收机制
		
#1 垃圾回收平台的基本工作原理: 访问一个资源所需的具体步骤: 1)调用IL指令newobj,为代表资源的类型分配内存.在C#中使用new操作符,编译器就会自动生成该指令.2)初始化内存,设置资源的 ...
 - Clr Via C#读书笔记---线程基础
		
趣闻:我是一个线程:http://kb.cnblogs.com/page/542462/ 进程与线程 进程:应用程序的一个实例使用的资源的集合.每个进程都被赋予了一个虚拟地址空间. 线程:对CPU进行 ...
 - CLR via C# 读书笔记 6-2 不同AppDomain之间的通信 z
		
跨AppDomain通信有两种方式 1.Marshal By reference : 传递引用 2.Marshal By Value : 把需要传递的对象 通过序列化反序列化的方式传递过去(值拷贝) ...
 
随机推荐
- Paxos一致性算法(三)
			
一.概述: Google Chubby的作者说过这个世界只有一种一致性算法,那就Paxos算法,其他的都是残次品. 二.Paxos算法: 一种基于消息传递的高度容错性的一致性算法. Paxos:少数服 ...
 - Oracle 体系结构四 逻辑和物理存储结构之间的关系
			
Oracle数据库从物理存储中完全抽象出逻辑存储.逻辑数据存储采用“段”的形式.段的类型有很多种:典型的段是“表”.这些段以物理形式存储在数据文件中.通过表空间将逻辑存储从物理存储中抽象出来.逻辑结构 ...
 - chromium之ScopedNSAutoreleasePool浅析
			
上代码,看看注释 ScopedNSAutoreleasePool只有Mac系统特有的,也可以理解为OC特有的函数, 其他系统为空实现 // On the Mac, ScopedNSAutorele ...
 - linux 网络服务之一
 -  linux命令sed与awk是干什么用的,怎么用?
			
非常强大的文本操纵工具,sed,awk,grep 这个三个命令 都是操作文本文件的unix系统有几个非常命令的特点:1. 对于内核而言,unix文件都是字节序列.io设备也是文件.2. 至于文件的含义 ...
 - 5 替换空格 JavaScript
			
题目描述 请实现一个函数,将一个字符串中的每个空格替换成“%20”.例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy. 原来一个空格字符,替换之后 ...
 - Asp.Net Core使用Log4Net优化日志【项目开源】
			
我在前一篇文章中介绍了一种使用Log4Net的方法,但是那种方法打出来的日志不是很直观 然后我前不久阅读了一篇非常不错的博客:https://www.cnblogs.com/guolianyu/p/9 ...
 - MongoDB如何释放空闲空间?
			
当我们从MongoDB中删除文档或集合时,MongoDB并不会将已经占用了的磁盘空间释放,它会一直维护已经占用了磁盘空间的数据文件,尽管数据文件中可能存在大大小小的空记录列表(empty record ...
 - excel  开头 结尾,中间  类似 SQL like ab%  ,%ab  ,%ab%
			
excel 开头 结尾,中间 类似 SQL like 'ab%' ,'%ab' ,'%ab%' 在R2 单元格 查找 ab开头,ab结尾 =Search("ab",R ...
 - Linux字符设备学习,总结
			
注册字符驱动的一种老方法: 注册一个字符设备的经典方法是使用:int register_chrdev(unsigned int major, const char *name, structfile_ ...