[Clr via C#读书笔记]Cp4类型基础】的更多相关文章

Cp4类型基础 Object类型 Object是所有类型的基类,有Equals,GetHashCode,ToString,GetType四个公共方法,其中GetHashCode,ToString可以override. 受保护方法有MemeberwiseClone,Finalize. 所有对象必须用new来创建,引用可以看成是安全的指针,指向真实对象在内存中的地址. 类型转换 隐式转换,显示转换,类型伪装 C#操作符is as 命名空间 结合现实的行政划分理解就很容易:using导入命名空间:别名…
Cp6类型和成员基础 成员 常量:字段(静态字段和实例字段):实例构造器:类型构造器(用于静态字段的构造):方法(静态方法和实例方法):操作符重载(本质是一个方法):转换操作符:属性(本质还是方法):事件(委托):类型(嵌套类): 类型的可见性 public,private,protected,internal,sealed,默认的类是internal. 友元程序集 这部分看看就行了 成员的可访问性 private protected(对应clr是Family),internal(对应clr是a…
前言 这俩个月没怎么写文章做记录分享,一直在忙项目上线的事情,但是学习这件事情,停下来就感觉难受,clr线程这章也是反复看了好多遍,书读百遍其义自见,今天我们来聊下线程基础 1.进程是什么,以及线程起源 2.线程开销,以及上线文切换 3.使用线程的理由 4.线程调度和优先级 5.前台线程和后台线程 一.进程是什么,以及线程起源 在计算机的早期岁月,os没有线程的概念,整个系统只运行者一个执行线程,其中包含操作系统和应用程序的代码.这意味着长时间运行的任务会阻止其他任务的运行.在16位window…
第二十五章 线程基础 2014-06-28 25.1 Windows为什么要支持线程 25.2 线程开销 25.3 停止疯狂 25.6 CLR线程和Windows线程 25.7 使用专用线程执行异步的计算限制操作 25.8 使用线程的理由 25.9 线程调度和优先级 25.10 前台线程和后台线程 参考 25.1 Windows为什么要支持线程 返回 Microsoft设计OS内核时,他们决定在一个进程(process)中运行应用程序的每个实例.进程不过是应用程序的一个实例要使用的资源的一个集合…
前言 近段时间工作需要用到了这块知识,遂加急补了一下基础,CLR中这一章节反复看了好多遍,得知一二,便记录下来,给自己做一个学习记录,也希望不对地方能够得到补充指点. 1,.托管代码和非托管代码的区别 2.托管堆是什么? 3.托管堆基础,托管堆分配资源 4.内存泄漏 内存溢出.内存损坏 5.C# new操作符分配资源 6.垃圾回收算法 7.代:提升性能 8.垃圾回收触发条件 9.大对象 10.使用需要特殊清理的类型 11.使用包装了本机资源的类型 一.托管代码和非托管代码的区别 托管代码:执行过…
1.定义泛型类型或方法时,为类型指定的任何变量(比如T)都称为类型参数.使用泛型类型或方法时指定的具体数据类型称为类型实参. 2.System.Collections.Concurrent命名空间提供了线程安全的泛型集合类.Microsoft建议使用泛型集合类,不建议使用非泛型集合类. 3.具有泛型类型参数的类型称为开放类型,CLR禁止构造开放类型的任何实例.这类似于CLR禁止构造接口类型的实例.代码引用泛型类型时可指定一组泛型类型实参.为所有类型参数都传递了实际的数据类型,类型就成为封闭类型.…
1.CLR允许将对象转换为它的(实际)类型或者它的任何基类型. 2.is操作符检测对象是否兼容于指定类型,is操作符永远不抛出异常. 3.as操作符返回对同一个对象的非null引用.如果对象不兼容,as返回null.as操作符的工作方式与强制类型转换一样,只是它永远不抛出异常——相反,如果对象不能转型,结果就是null. 4.c# using指令的另一种形式允许为类型或命名空间创建别名, 如: using WintellectWidget=Wintellect.Widget; public se…
趣闻:我是一个线程:http://kb.cnblogs.com/page/542462/ 进程与线程 进程:应用程序的一个实例使用的资源的集合.每个进程都被赋予了一个虚拟地址空间. 线程:对CPU进行虚拟化,可以理解为一个逻辑CPU.windows为每个进程提供了专用的线程(如果代码进入了无线循环,进程就会被“冻结”) 线程要素,开销 线程包括以下要素: 1. 线程内核对象, 其中包含 1)一组对线程进行描述的属性 2)线程上下文,即包含CPU寄存器的集合的一个内存块 2. 线程环境块(TEB)…
1.一些开发人员说应用程序在32位操作系统上运行,int代表32位整数:在64位操作系统上运行,int代表64位整数.这个说法是完全错误的.C#的int始终映射到System.Int32,所以不管在什么操作系统上运行,代表的都是32位整数. 2.checked.unchecked来检查.不检查表达式是否产生溢出:C#默认关闭溢出检查: UInt32 invalid=unchecked((UInt32)(-1)); -----------------------------------------…
Cp19可空值类型 主要解决的是和数据库中null对应的问题: System.Nullable结构:值类型: int?语法: 可空实例能够使用操作符: C#空合并操作符??; 即可用于引用类型,也可以用于值类型: CLR支持可空值类型:装箱:拆箱:通过可空值类型调用接口和方法:…