NET基础课--NET的一些概念0
0.CIL--公共中间语言
VC++:经过预编译,编译,汇编和链接生成本地可执行代码,支持它运行的是OS和本地cpu指令集。
C#: 在.net框架下类似c#的高级语言经过编译生成的文件叫程序集,后缀名.dll 和 .exe。程序集由CIL语言描述。利用IL DASM查看程序集
时你会发现vb和c#编写编译生成的CIL代码是一致的。由于程序集运行受NET运行时管理所以CIL代码也叫托管代码。
注意:CIL是一种语言,可以直接写代码,只不过比c#低级一些,编写起来效率低。
1.BCL--基础类库
举例:新建一个控制台项目,删除引用中所有的引用,你会发现你的helloword照样可以打印, 这是因为console类定义在基础类库中,所属程序集是mscorlib.dll.这个程序集总是自动引用且和CIL语言紧密关联。
那string类型呢?string在代码中蓝色呈现你猜测应该是c#关键字即内置类型,但是按下f12你会发现它定义在mscorlib中。
所以才有这样的对应关系:c#中关键字是CIL类型的别名。
CIL类型 c#关键字
System.Byte byte
基元类型:编译器直接支持将语言关键字类型转换为CIL类型的类型如int byte等。
2.FCL--框架类库
BCL是FCL的一部分。
FCL分层:最内层有BCL的大部分组成,对.NET运行时和CIL等进行支持,例如 基元类型,线程 应用程序域等
中间一层对系统功能的封装,例如文件系统,网络连接,图形图像等
最外层是各种类型的应用程序 如wpf,wcf,asp.net等。
3.CTS--公共类型系统
CTS是CIL语言的规范或规则定义。CIL实现了CTS的全部功能。c#只实现了CTS的一部分功能。
4.CLS--公共语言规范
不同语言编写的程序集互操作的基础规范。可以使用特性CLSCompliant应用在类上,以便编译时检查程序集是否符合CLS。
特性:[assembly:CLSCompliant()]
如果你是组件开发人员建议遵守这个规范来开发组件。
NET基础课--NET的一些概念0的更多相关文章
- ZAM 3D 制作简单的3D字幕 流程(二)
原地址:http://www.cnblogs.com/yk250/p/5663907.html 文中表述仅为本人理解,若有偏差和错误请指正! 接着 ZAM 3D 制作简单的3D字幕 流程(一) .本篇 ...
- 探索 OpenStack 之(10):深入镜像服务Glance
本篇博文来探讨下镜像服务Glance. 0. 基本概念 0.1 基本功能 Glance提供REST API来支持以下镜像操作: 查询 注册 上传 获取 删除 访问权限管理 0.2 Glance RE ...
- qt中文乱码问题
首先,声明一下,QString 是不存在中文支持问题的,很多人遇到问题,并不是本身 QString 的问题,而是没有将自己希望的字符串正确赋给QString. 很简单的问题,"我是中文&qu ...
- Qt中文乱码问题(比较清楚,同一个二进制串被解释成不同的语言)
文章来源:http://blog.csdn.net/brave_heart_lxl/article/details/7186631 以下是dbzhang关于qt中文乱码问题原因的阐述,觉得不错: 首先 ...
- Java 并发 线程同步
Java 并发 线程同步 @author ixenos 同步 1.异步线程本身包含了执行时需要的数据和方法,不需要外部提供的资源和方法,在执行时也不关心与其并发执行的其他线程的状态和行为 2.然而,大 ...
- Ubuntu设置程序开机自启或者开机禁止加载
先说说ubuntu,它有运行级别这个概念 0:停机 1:单用户形式,只root进行维护 2:多用户,不能使用net file system 3:完全多用户 5:图形化 6:重启 例子:按指定顺序.在指 ...
- Django+xadmin打造在线教育平台(六)
九.课程章节信息 9.1.模板和urls 拷贝course-comments.html 和 course-video.html放入 templates目录下 先改course-video.html,同 ...
- rsa加密算法及js的JSEncrypt实现前端加密
最近的项目中用到了rsa加密算法,在实现了相关功能之后,我去了解了一下rsa相关原理,于是就写了这篇博客啦. 首先介绍一下什么是rsa加密算法: 作为非对称加密算法的老大,rsa号称是地球上最安全的加 ...
- Numpy三维数组的转置与交换轴
二维数组的转置应该都知道,就是行列交换 而在numpy中也可以对三维数组进行转置,np.T 默认进行的操作是将0轴与2轴交换 本文主要对三位数组轴交换的理解上发表本人的看法. a = np.array ...
随机推荐
- 针对淡入淡出的定时轮播效果js
如果不使用jquery的fadeIn和fadeOut的接口和不适用animate情况下,如果要做用js实现淡入淡出轮播效果,我所想到的办法就是使用css3新特性transition(注意好兼容性). ...
- mac中遇到的mysql编码问题
由于项目有需要支持表情包输入数据库,自己做了一下技术测试,修改了my.cnf的权限为777.结果就操蛋了.编码错误.... 直到我无意地输入mysql -h,提示我/etc/my.cnf被忽略的一段话 ...
- git的安装已经连github
https://help.github.com/articles/generating-ssh-keys 1.安装git [plain] view plain copy sudo apt-get ...
- phantomjs 渲染
phantomjs 可以将web页面渲染并保存为扩展名为PNG,GIF,JPEG,PDF的指定文件 render viewportSize可以改变可视窗体大小 zoomFactor调整缩放比例 cli ...
- 简单的thinkPHP3.2运行实例。
在上一篇的环境基础下. 我们用zendstudio12.5版本编写我们的代码.具体的下载方式在这里就不多做注明了.自己百度就可以搞定. 首先我们用zendstudio12.5 导入我们从网上随处都可以 ...
- python3连接mysql
用到模块pymysql,用pip安装 sudo pip3 install pymysql3 编写程序 import pymysql conn = pymysql.connect(host=',db=' ...
- AFNetworiking与ASIHttpRequest对比
在开发iOS应用过程中,如何高效的与服务端API进行数据交换,是一个常见问题.一般开发者都会选择一个第三方的网络组件作为服务,以提高开发效率和稳定性.这些组件把复杂的网络底层操作封装成友好的类和方法, ...
- 如何从uiview里面,获取其上层的uiviewcontroller
id object = [self nextResponder]; while (![object isKindOfClass:[UIViewController class]] && ...
- BZOJ 1502 月下柠檬树(simpson积分)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1502 题意:给出如下一棵分层的树,给出每层的高度和每个面的半径.光线是平行的,与地面夹角 ...
- fatal error LNK1112: module machine type 'x64' conflicts with target machine type 'X86'
这个问题很奇怪.原来是/machine:X86 /machine:X64这两个链接器选项一起使用了.所以就冲突了.接手别人的项目就是晕啊.不知道为什么在VS中linker commandline的ad ...