C# 《一》基本知识 (1)

一、 .net Framework 编写应用程序的过程

1、使用 .NET Framework 编写应用程序,就是使用 .NET代码库编写代码(使用支持Framework的任何一种语言)。

2、为执行C#代码,必须把它们转换为目标操作系统能够理解的语言,即本机代码(native code),这种转换称为编译代码,由编译器执行。

二、  CIL

1、在编译使用 .NET Framework 库的代码时,不是立即创建专用于操作系统的本机代码,而是把代码编译为通用中间语言(Common Intermediate Language)。

2、这些代码并非专门用于任何一种操作系统,也非专门用于 C 仇其他 .NET语言,如:Visual Basic.NET 也可以在第一阶段编译为这种语言,开发 C# 应用程序时,这个编译步骤由 IDE 完成。

三、 程序集

1、在编译应用程序时,所创建的 CIL 代码存储在一个程序集中。

2、程序集包括可执行的应用程序文件 (exe) 和其他应用程序使用的库 (dll)。

四、 JIT 编译器

1、JIT 编译器,英文写作 Just-In-Time Compiler ,中文意思是即时编译器。

2、JIT 编译器能够将 CIL 编译成为各种不同的机器代码,以适应对应的系统平台,最终使得程序在目标系统中得到顺利地运行。

五、托管代码

1、在将代码编译为 CIL ,再用 JIT 编译器将它编译为本机代码后,CLR 的任务还没有全部完成,还需要管理正在执行的用 .NET Framework 编写的代码(这个执行代码的阶段通常称为运行时(runtime))。即CLR 管理着应用程序,其方式是管理内存,处理安全性以及允许进行跨语言调试等。

2、相反,不受 CLR 控制运行的应用程序属于非托管类型,某些语言如 C++ 可以用于编写这类应用程序,例如:访问操作系统的低级功能。但是在 C# 中,只能编写在托管环境下运行的代码。我们将使用 CLR 的托管功能,让 .NET 自已与操作系统进行交互。

3、简单点说,托管代码是一 microsoft 的中间语言,他主要的作用是在 .NET FRAMEWORK 的 CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段:

1)源代码编译为托管代码;(所以源代码可以有很多种,如 VB、C#、J#)

2)托管代码编译为 microsoft 系统的 .net 平台专用文件(如:类库、可执行文件等)。

总结:

创建 .net 应用程序所经历的步骤

1、使用某种 . NET 兼容语言(如 C# ) 编写代码;

2、把代码编译为 CIL,存储在程序集中;

3、在托管的 CLR 环境下运用本机代码,以及其他应用程序或进程

时间: 2024-08-24 22:38:44

C# 《一》基本知识 (1)的相关文章

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

前端里移动端到底比pc端多哪些知识?

前端里移动端到底比pc端多哪些知识,为啥面试时好多公司都问h5水平如何? 我做过几年的web前端开发,就简单谈谈自己的感受吧. 首先来看看PC端和移动端在前端开发上的一些区别: (1)PC考虑的是浏览器兼容性,移动端开发考虑的更多的是手机兼容性,因为目前不管是android手机还是ios手机,一般浏览器用的都是webkit内核,所以做移动端开发,更多考虑的应该是手机分辨率的适配,和不同操作系统的略微差异化: (2)在部分事件的处理上,移动端自然是偏向于触屏的,所以触屏事件的一些规律要多摸索一下,

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

认知,构建个人的知识体系(上)

1.前言 本文将聊聊我对构建个人知识体系的一些想法,主要是为了提升自我认知.从个人经历开始,谈谈对知识的划分,也就是一个是什么,为什么的过程. 2.缘起 把时间回到一年前,那时候我工作快一年了,得益于前面的一些努力,工作比较顺利.特别是技术上,没有遇到太多过无法解决的问题.同时也开始迷茫,工作难道就是这个轻松的样子?三五年之后那不是很无趣,该怎么办? 想找到这个问题的答案,而最好的方式莫过于,亲自去了解那些三五年工作经验的人是怎么的样子. 因此从那时候起,关注了不少来公司面试的人的简历,也有过几

知识汇总都在这里了,赶紧点开看看吧!

微信公众号:Web前端精髓 Web前端技术由html.css和JavaScript三大部分构成,是一个庞大而复杂的技术体系,其复杂程度不低于任何一门后端语言.而我们在学习它的时候往往是先从某一个点切入,然后不断地接触和学习新的知识点,因此对于初学者很难理清楚整个体系的脉络结构. Web前端精髓是一个分享前端知识的平台,内容包括HTML.CSS.javascript 等和前端技术相关的一切,如果您想对前端有更多的了解,那就持续关注我们,目的是帮助大家审查自己的知识结构是否完善,希望我的文章对你们有

学习虚拟化技术需要掌握的知识与能力(未完成版)

我从1993年学习计算机,有过短期的C语言开发经历,现在主要从事网络与系统集成的工作.我可以算是学习计算机比较"早"的一批人了. 1993年的时候,我是从MS-DOS 3.30开始,直到最后的MS-DOS 6.22.Windows系统是从Windows 3.1(中文版)开始,再到Windows 3.11.Windows 95.98一直到现在的Windows 10. 组建Windows网络是在1996年河北省国税局全省联网,是从Windows NT 3.51开始,到后来的Windows

CentOS下的路由知识及配置路由

博文目录 简介 上一篇博文已经讲解了IP地址的配置,那么有IP,就准备开始进行通信吧,网络之间的通信主要是依靠路由器,当然生成环境中是拥有路由器的,但是系统中的路由配置也是需要了解一下地,今天讲解一下软路由的显现,与一个路由的小实验 linux下需要启用ip_forword 启用路由功能 echo 1 > /proc/sys/net/ipv4/ip_forword 一.路由表中的接口 到达目标网段从本路由器的那个接口能到达,这个借口就本路由的记录接口 1.如果目标网络和路由器直接相连,网关即是路

javascript必须知道的知识要点(二)

该文章不详细叙述各知识要点的具体内容,仅把要点列出来,供大家学习的时候参照,或者检测自己是否熟练掌握了javascript,清楚各个部分的内容. 内建对象可划分为数据封装类对象.工具类对象.错误类对象,如下. 数据封装类对象: Number对象 String对象 Boolean对象 Array对象 Object Function 工具类对象: Math对象 Date对象 RegExp对象 错误类对象: Error对象  Number对象 JavaScript 只有一种数字类型.Number,包括

关于H5框架之Bootstrap的小知识

浏览器支持 旧的浏览器可能无法很好的支持 Bootstrap 支持 Internet Explorer 8 及更高版本的 IE 浏览器 CSS源码研究 我们不是在head里面引入了下面这些文件么 <!-- 新 Bootstrap 核心 CSS 文件 --> <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css"> &l

031医疗项目-模块三:药品供应商目录模块——sql补充知识

这个补充知识有一个点很有必要,视屏上的老师提出一点: 内链接关联查询: 如果表A和表B有一个外键关联 ,可以通过外键进行内链接查询 select dictinfo.*, dicttype.typename from dictinfo, dicttype where dictinfo.typecode = dicttype.typecode --不通过外键,通过groupid查询用户类型的代码结果集,只能查询出一条记录,可以使用内链接 select sysuser.*, dictinfo.info