【Unity|C#】基础篇(0)——C#与.NET框架
【学习资料】
《C#图解教程》(第1章):https://www.cnblogs.com/moonache/p/7687551.html
电子书下载:https://pan.baidu.com/s/1mhOmBG0
【笔记内容】
- .NET框架组成
- 程序集(dll/exe)
- 本机代码
- JIT编译器(Just-In-Time)
- 公共语言运行库(CLR)
- CLI(也叫IL)
【笔记】
- .NET框架组成
- 编程工具:如VS
- BCL :基础类库
- CLR :公共语言运行库
我们写的C#代码:
(1)使用BCL
(2)通过编译器,将代码编译成程序集(dll或exe)
(3)然后由CLR解析执行

- 程序集
- 通过编译器,将C#代码编译成程序集(dll 或 exe)
- 程序集里的代码不是本机代码,而是的中间语言
- 程序集包含的信息:
- CIL
- 程序中使用的类型 的 元数据
- 对其他程序集引用 的 元数据

- 本机代码
- 操作系统能执行的机器指令(操作系统的一个个指令操作)
- 程序集中的代码,通过CLR的 JIT实时编译器 编译成 本机代码
- 注:CIL代码只有被调用时,才会被编译,且只会编译一次。(没被调用的CIL代码不会进行编译)

- 编译和执行的过程
- 程序集由 JIT编译器 编译成 本机代码,然后由操作系统执行

- CLR(公共语言运行库)
- NET框架的核心组件,它在操作系统的顶层,负责管理程序的执行
- 托管代码:由.NET框架编写的C#代码,编译成dll
- 非托管代码:如外部C++编写的代码,编译成dll

- CLI(公共语言基础结构)(也叫IL)
- 不需要了解

【Unity|C#】基础篇(0)——C#与.NET框架的更多相关文章
- C#基础篇之C#和 .Net框架的概念和运行原理
一.微软平台的发展史 二..Net框架包含的东西 1.名词解释 BCL:基类库(Base Class Library)系统和底层提供的最基本的类库 CLR:公共语言运行时(Common Languag ...
- Python之路【第十六篇】:Django【基础篇】
Python之路[第十六篇]:Django[基础篇] Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了O ...
- ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView
原文地址: ArcGIS Runtime for Android开发教程V2.0(4)基础篇---MapView - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NET http:/ ...
- ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map
原文地址: ArcGIS Runtime for Android开发教程V2.0(3)基础篇---Hello World Map - ArcGIS_Mobile的专栏 - 博客频道 - CSDN.NE ...
- 【转】WF4.0 (基础篇)
转自:http://www.cnblogs.com/foundation/category/215023.html 作者:WXWinter —— 兰竹菊梅★春夏秋冬☆ —— wxwinter@16 ...
- [WF4.0 实战] WPF + WCF + WF 打造Hello World(基础篇)
本篇博客是一个基础的演示样例,也就是一个新手教程吧!让大家熟悉一下WPF + WCF + WF三者的关系!这仅仅是一个基础篇,下篇会继续深入,作为这段时间研究工作流的一个小小总结! 三者关系: WPF ...
- (六)SpringBoot2.0基础篇- Redis整合(JedisCluster集群连接)
一.环境 Redis:4.0.9 SpringBoot:2.0.1 Redis安装:Linux(Redhat)安装Redis 二.SpringBoot整合Redis 1.项目基本搭建: 我们基于(五) ...
- iOS开发swift语法0基础篇—————(swift技术交流群:361513739)
iOS开发之swift语法0基础篇:点击打开链接 swift技术交流QQ群361513739
- (二)SpringBoot2.0基础篇- 静态资源的访问及Thymeleaf模板引擎的使用
一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf ...
随机推荐
- warning Attribute 'showExpand' must be hyphenated
报错翻译:警告属性“ showExpand”必须带连字符 报错原因父组件给子组件传参时,使用驼峰命名法,导致ESLint检测出语法问题,如下↓ 改成这样就ok了
- Uva1640(统计数字出现的次数)
题意: 统计两个整数a,b之间各个数字(0~9)出现的次数,如1024和1032,他们之间的数字有1024 1025 1026 1027 1028 1029 1030 1031 1032 总共有10个 ...
- C#从委托、lambda表达式到linq总结
前言 本文总结学习C#必须知道的基础知识,委托.监视者模式.常用lambda表达式.linq查询,自定义扩展方法,他们之间有什么关系呢?匿名委托是如何演变成lambda表达式,lambda再如何导出l ...
- TamperMonkey 使用指南以及脚本推荐
写在前面 Chrome浏览器是最适合开发者使用的浏览器,不仅仅是因为Chrome对于Js的友好支持,更是由于Chrome支持丰富且功能强大的插件,扩展了浏览器的功能和使用体验. 在这些插件里面,相信你 ...
- 【JavaScript】JS总结 – 乱
一. 重要:js中的function函数声明.函数表达式 // 函数声明 // Ex: 会在代码执行之前提前加载到作用域中,即js解析器会优先读取,确保在所有代码执行之前声明已经被解析:所以可以在定义 ...
- Aspcms标签大全及常用标签
相关解释:1.首页指的是index.html文件.列表页一般指newslist.html,productlist.html等文件,该文件对应于后台栏目添加或修改时的列表模板.内页一般指news.htm ...
- yamlapi接口测试框架
1.思路: yamlapi支持unittest与pytest两种运行模式, yamlapi即为yaml文件+api测试的缩写, 可以看作是一个脚手架工具, 可以快速生成项目的各个目录与文件, 只需维护 ...
- openlayers画区域
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- bugku_web_变量1(CTF)
这道题考察php全局变量GLOBALS的用法,同样是个php审计题. 看一下代码: flag In the variable ! <?php error_reporting(0); includ ...
- z3学习档案
Reference: 看雪-z3巧解逆向 知乎:Z3一把梭 z3 solver学习 使用z3约束求解器解决CTF中的题目 Playing with Z3,hacking the serial chec ...