[读书笔记]C#学习笔记一: .Net Framwork
2016-01-07 22:52
344 查看
前言:
一次偶然的机会 在园子里看到@Learning hard 出版的一本书: <<C#学习笔记>>, 然后买来 一直到现在读完, 感觉很不错, 适合入门, 书中内容是从C#1.0 到5.0. 很全面也很细致.
下面就来分享一下这本书中自己感觉需要记录的一些东西.
这里先贴上@Learning hard本人在博客园的主页: http://www.cnblogs.com/zhili/ 以及本书中的一些知识点: http://www.cnblogs.com/zhili/category/421637.html
一: .Net Framework
1.1.Net Framework 就是应用程序运行时的执行环境, 为应用程序的执行提供一下几种服务:
>全面的类库
>内存管理
>通用类型系统
>开发结构和技术
>语言互操作性
1.2 .Net Framwork的组成
1.公共语言运行时
公共语言运行时是.Net Framwork的核心基础. 我们可以将CLR看成一个在执行时管理代码的代理, 它提供了内存管理, 线程管理和异常处理的服务, 而且还负责对代码实施严格的类型安全检查, 保证了代码的正确性. 我们将受CLR管理的代码称为托管代码(managed code), 将不受CLR管理的代码称为非托管代码(unmanaged code).
CLR包含两个组成部分: 通用类型系统(Common Type System, CTS)和公共语言规范(Common Language Specification, CLS).
1.3 .Net Framwork 类库就是一组DLL程序集的集合.
1.4 C# 代码的执行过程
>C#代码编译为中间语言代码的阶段
在编译C#代码时, C#的编译器(VS中集成了C#编译器)把代码译为通用中间语言(Common Intermediate Language, CIL)代码
>中间语言代码编译为本季代码的阶段
要使C#代码能够运行, 还需进一步将CIL代码转换为特定CPU的机器码, 该过程由即时编译器(Just-In-Time, JIT)来完成.
●并不是只有C#代码才能够被编译为中间语言代码, 其他面向.Net的语言在执行之前也都需要先编译为中间语言代码. 该过程由编译器来完成.
●JIT编译生成本机代码之后, 编译好的代码会被放置到一个缓冲区缓存, 下次再调用相同的代码时, 可直接运行缓存区中现有的本机代码, 从而避免重新验证IL代码以及把它编译成本机代码的过程. 使用这种方法, 系统只在首次调用时才会造成一些性能损失(即发生JIT过程).
C#代码编译为中间语言代码阶段:
中间语言代码编译为本机代码阶段
PS: 今天本来想写更多内容的, 但是时间已经不早了. 这里还欠缺几张图片, 明天再来补上, 有时间的话会分享一下在工作中学习的东西: 比如远程Debug, sql profiler等.
一次偶然的机会 在园子里看到@Learning hard 出版的一本书: <<C#学习笔记>>, 然后买来 一直到现在读完, 感觉很不错, 适合入门, 书中内容是从C#1.0 到5.0. 很全面也很细致.
下面就来分享一下这本书中自己感觉需要记录的一些东西.
这里先贴上@Learning hard本人在博客园的主页: http://www.cnblogs.com/zhili/ 以及本书中的一些知识点: http://www.cnblogs.com/zhili/category/421637.html
一: .Net Framework
1.1.Net Framework 就是应用程序运行时的执行环境, 为应用程序的执行提供一下几种服务:
>全面的类库
>内存管理
>通用类型系统
>开发结构和技术
>语言互操作性
1.2 .Net Framwork的组成
1.公共语言运行时
公共语言运行时是.Net Framwork的核心基础. 我们可以将CLR看成一个在执行时管理代码的代理, 它提供了内存管理, 线程管理和异常处理的服务, 而且还负责对代码实施严格的类型安全检查, 保证了代码的正确性. 我们将受CLR管理的代码称为托管代码(managed code), 将不受CLR管理的代码称为非托管代码(unmanaged code).
CLR包含两个组成部分: 通用类型系统(Common Type System, CTS)和公共语言规范(Common Language Specification, CLS).
1.3 .Net Framwork 类库就是一组DLL程序集的集合.
1.4 C# 代码的执行过程
>C#代码编译为中间语言代码的阶段
在编译C#代码时, C#的编译器(VS中集成了C#编译器)把代码译为通用中间语言(Common Intermediate Language, CIL)代码
>中间语言代码编译为本季代码的阶段
要使C#代码能够运行, 还需进一步将CIL代码转换为特定CPU的机器码, 该过程由即时编译器(Just-In-Time, JIT)来完成.
●并不是只有C#代码才能够被编译为中间语言代码, 其他面向.Net的语言在执行之前也都需要先编译为中间语言代码. 该过程由编译器来完成.
●JIT编译生成本机代码之后, 编译好的代码会被放置到一个缓冲区缓存, 下次再调用相同的代码时, 可直接运行缓存区中现有的本机代码, 从而避免重新验证IL代码以及把它编译成本机代码的过程. 使用这种方法, 系统只在首次调用时才会造成一些性能损失(即发生JIT过程).
C#代码编译为中间语言代码阶段:
中间语言代码编译为本机代码阶段
PS: 今天本来想写更多内容的, 但是时间已经不早了. 这里还欠缺几张图片, 明天再来补上, 有时间的话会分享一下在工作中学习的东西: 比如远程Debug, sql profiler等.
相关文章推荐
- C# Plugin Framework Demos
- C# using 三种使用方式
- 关于C#自定义控件【摘录】
- C# 坦克大战学习总结
- C# 坦克大战学习总结
- 基于MASM6.15的汇编集成开发环境
- 06.C#线程Thread
- c# 基本控件,窗口程序
- 05.C#委托(delegate)的使用
- 04.C#文件和流的操作
- C# Seal用法
- C#中怎么使用系统默认浏览器打开指定的URL(代码实现)
- C# Socket编程 同步以及异步通信
- C# 反射学习
- C#实现在winfrom程序中下载文件
- C#中采用自定义方式读取自定义配置文件
- 可视化对比十多种排序算法(C#版)
- 02.C#类、重写虚函数、get和set方法
- C# 多线程写日志文件,锁定日志文件
- C#实现每隔一段时间执行代码(多线程)