Fork me on GitHub

随笔分类 -  CLR

常量和字段
摘要:1.类型的各种成员 成员 说明 常量 指出数据值恒定不变的符号。一般设计为静态的 字段 ①表示数据值。 ⑤静态字段:类型状态的一部分 ③实例字段:对象状态的一部分 ④建议将字段设计为私有,防止类型或对象的状态被类型外部的代码破坏 实例构造器 将实例字段初始化 类型构造器 将静态字段初始化 方法 ①方 阅读全文

posted @ 2017-03-20 21:22 *Hunter 阅读(556) 评论(0) 推荐(0)

Dynamic
摘要:1,dynamic和var ①var声明局部变量只是一种简化语法,它要求编译器更具表达式推断具体数据类型 ②var关键字只能在方法内部声明局部变量,而dynamic关键字可用于局部变量、字段和草书 ③表达式不能转型为var,但能转型为dynamic ④必须显式初始化用var声明的变量,而无需初始化用 阅读全文

posted @ 2017-03-13 21:10 *Hunter 阅读(209) 评论(0) 推荐(0)

对象哈希码
摘要:1,为什么要定义GetHashCode方法 类型定义Equals之所以还要定义GetHashCode,是由于在Hashtable和Dictionary类型以及其他一些集合的实现中,要求对象必须具有相同哈希码才被视为相等。所以,重写Equals就必须重写GetHashCode方法,确保相等性算法和对象 阅读全文

posted @ 2017-03-08 21:22 *Hunter 阅读(924) 评论(0) 推荐(0)

装箱与拆箱
摘要:一、装箱机制: 1,在托管堆中分配内存。分配的内存量是值类型各字段所需的内存量,还要加上托管堆中所有对象都有的两个额外成员(类型对象指针和同步块索引)所需的内存量2,值类型字段复制到新分配的堆内存3,返回对象地址。现在该地址是对象的引用;值类型成了引用类型 二、拆箱机制 1,获取已装箱值类型对象中的 阅读全文

posted @ 2017-03-02 21:29 *Hunter 阅读(192) 评论(0) 推荐(0)

值类型与引用类型
摘要:一、使用引用类型要认清一下四个事实 1,内存必须从托管堆分配 2,堆上分配的每个对象都有一个额外成员,这些对象必须初始化 3,对象中的其他字节(为字段而设)总是设为零 4,从托管堆分配对象时,可能强制执行一次垃圾回收 二、哪些是引用类型,哪些是值类型 1,任何称为“类”的类型都是引用类型(例如:Sy 阅读全文

posted @ 2017-02-27 21:03 *Hunter 阅读(191) 评论(0) 推荐(0)

基元类型
摘要:什么是基元类型?编译器直接支持的数据类型 C#基元类型 FCL类型 符合CLS 说明 Sbyte System.SByte 否 有符号8位值 byte System.Byte 是 无符号8位值 Short System.Int16 是 有符号16位值 Ushort System.UInt16 否 无 阅读全文

posted @ 2017-02-22 20:38 *Hunter 阅读(825) 评论(0) 推荐(0)

运行时的相互关系
摘要:1,Windows进程已启动,CLR已加载到其中,托管堆已初始化,创建了一个线程(分配1MB栈空间),线程已经执行了一些代码,马上要调用M3方法了 1,JIT编译器将M3的IL代码转换成本机CPU指令时,会确认M3内部引用的所有类型(Employee、Int32、Manager、String)是否都 阅读全文

posted @ 2017-02-20 21:32 *Hunter 阅读(212) 评论(0) 推荐(1)

类型基础
摘要:一、实例类型 Employee e=new Employee("ConstructorParaml")1,计算类型及其所有基类型(一直到System.Object)中定义的所有实例字段需要的字节数。堆上每个对象都需要一些额外成员,包括“类型对象指针”和“同步块索引”。CLR利用这些成员管理对象。额外 阅读全文

posted @ 2017-02-20 21:30 *Hunter 阅读(190) 评论(0) 推荐(0)

程序集
摘要:1,弱命名和强命名程序集的部署方式 程序集种类 可以私有部署 可以全局部署 弱命名 是 否 强命名(需要使用发布者的公钥/私钥进行签名) 是 是 注:利用辅助类System.Reflection.AssemblyName构造程序集名称,并获取程序集名称的各个组成部分 2,两个(或更多)公司可能生成具 阅读全文

posted @ 2017-02-14 20:17 *Hunter 阅读(232) 评论(0) 推荐(0)

程序集版本资源信息
摘要:1,版本号:表展示了示例版本号:2.5.719.2。前两个编号构成了公众对版本号的理解。公众会将这个例子看成是程序集的2.5版本。第三个编号719是程序集的build号。如果公司每天都生成程序集,那么每天都应该递增这个build号。最后一个编号2指出当前build的修订次数。如果因为某个原因,公司某 阅读全文

posted @ 2017-02-05 19:18 *Hunter 阅读(421) 评论(0) 推荐(1)

元数据概述
摘要:元数据是由几个表构成的二进制数据块。有三种表,分别是定义表(definition table)、引用表(reference table)和清单表(manifest table) 1,常用的元数据定义表 元数据定义名称 说明 ModuleDef 总是包含对模块进行标识的一个记录项; 包含:模块文件名, 阅读全文

posted @ 2017-02-05 19:11 *Hunter 阅读(749) 评论(0) 推荐(1)

“公共语言规范”(CLS)
摘要:一、什么是“公共语言规范”(CLS) 定义了一个最小公共集,任何编译器只有支持这个功能集,生成的类型才能兼容其他符合CLS、面向CLR的语言生成的组件 二、CLS规则 类型的每个成员要么是字段(数据),要么是方法(行为),为简化编程,语言往往提供了额外的抽象 该类型还有另一些节点未列出,包括.cla 阅读全文

posted @ 2017-01-22 20:39 *Hunter 阅读(1084) 评论(0) 推荐(0)

“通用类型系统”(CTS)
摘要:一、什么是“通用类型系统”(CTS) 描述类型的定义和行为 二、CTS规范 一个类型可以包含零个或者多个成员1,成员①字段(Field)作为对象状态一部分的数据变量。字段根据名称和类型来区分②方法(Method)针对对象执行操作的函数,通常会改变对象的状态。方法有一个名称、一个签名以及一个或多个修饰 阅读全文

posted @ 2017-01-21 20:39 *Hunter 阅读(1015) 评论(0) 推荐(0)

Framework类库(FCL)简介
摘要:Framework类库(Framework Class Library,FCL)是一组DLL程序集的统称,其中含有数千个类型定义,每个类型都公开了一些功能 部分常规的FCL命名空间 命名空间 内容说明 System 包含每个应用程序都要用到的所有基本类型 System.Data 包含用于和数据库通信 阅读全文

posted @ 2017-01-21 20:36 *Hunter 阅读(1649) 评论(0) 推荐(1)

JIT即时编译器
摘要:一、什么是JIT? 即时编译器,负责将IL转换成本机CPU指令 二、JIT编译原理 ①在Main方法执行之前,CLR会检测出Main的代码引用的所有类型。会导致CLR分配一个内部结构。在这个结构中,Console类型定义的每个方法都有一个对应的记录项②Main方法首次调用WriteLine时,JIT 阅读全文

posted @ 2017-01-19 21:28 *Hunter 阅读(627) 评论(0) 推荐(1)

CLR基础
摘要:一、各个语言的长处 ①非托管C/C++可对系统进行低级控制。可完全按照自己的想法管理内存,必要时方便地创建线程②使用Microsoft Visual Basic 6.0可以快速生成UI应用程序,并可以方便的控制COM对象和数据库③公共语言运行时(CLR)是一个可以由多种编程语言使用的“运行时”。CL 阅读全文

posted @ 2017-01-19 19:39 *Hunter 阅读(455) 评论(0) 推荐(1)

导航

AmazingCounters.com