学在之前

   

COM Cmponent Object Model

组件对象模型,COM组件是win32动态链接库(dll)或者可执行文件(exe)形式发布可执行代码组成。

是一些小的二进制可执行文件,给应用服务、操作系统其它操作提供服务。

   

C#语言

完全遵守C#语言规范,只要平台支持,可以跑在任何平台上。并非只有.NET平台,也可以进行其它更多的形式输入,并非只有IL

   

运行时

确保IL写的程序符合CLI规范的方式执行,CLRC#编译成IL ,再由CLR编译成本地码

   

   

C#1

委托实例有一个操作列表,也就是调用列表,System.Delegate类型的静态方法CombineRemove负责连接与删除

委托不易变,创建后就不能改变。所以安全传递引用,并与其它委托实例合并,就像stringDelete.Combinestring.Concat类似,都是合并现在的实例形成新实例,不更改原始对象。

Combine == > + / +=

   

值类型与引用类型

值类型不可以派生出其他类型,值不需要额外的信息描述值实际是什么类型,引用类型每个对象的开头包含一个数据块,标识了对象的实际类型,永远都不能改变对象的类型。

强制转换时,运行时获取一个类型,检查引用对象是不是目标类型的有效对象,有效就返回原始引用 ,引用本身不知道对象类型。同一个引用 "值 "可用于(引用)不同类型的多个变量

对于引用类型来说 ,变量的值就是引用

   

走出误区之引用类型保存在堆上,值类型保存在栈上

变量的值是在它声明的位置存儲的,类中有int类型属性,这个属性和它的对象是在一起的,也就是堆上

走出误区之 对象在C#中默认通过引用传递

并不是所有的引用类型对象都是引用传递,像stringstringbuilder就不是。无论是值类型还是引用类型都不会传递对象本身,要么是对象的引用,要么是副本。

posted @ 2017-07-14 08:17  liangshiwei  阅读(219)  评论(0编辑  收藏  举报