.NET Framework (代码库、通用类型系统CTS、CLR) 简介

编译
C#————>程序集(.exe、.dll[MSIL])、元信息[数据信息]、可选资源[图片、声音])

        |                     |
        |                     (Microsoft Intermediate Language 微软中间语言)
        |
        | JIT编译 (Just-In-Time 仅在需要时才编译MSIL)
        |
        ——> 机器代码 <———— .NET CLR (Common Language Runtime 公共语言运行时)
                  运行     /       \
                      /        \
                    托管      非托管
                    (C#)     (C++)

总结:

一、用C#等.NET兼容语言编写代码

编译
二、 C#————>程序集

JIT编译
三、 程序集—————>机器代码

运行
四、 托管CLR————>机器代码

时间: 2024-08-01 00:17:54

.NET Framework (代码库、通用类型系统CTS、CLR) 简介的相关文章

“通用类型系统”(CTS)

一.什么是"通用类型系统"(CTS) 描述类型的定义和行为 二.CTS规范 一个类型可以包含零个或者多个成员1,成员①字段(Field)作为对象状态一部分的数据变量.字段根据名称和类型来区分②方法(Method)针对对象执行操作的函数,通常会改变对象的状态.方法有一个名称.一个签名以及一个或多个修饰符.签名指定参数数量(及其顺序):参数类型:方法是否有返回值:如果有返回值,还要指定返回值类型③属性(Property)对于调用者,属性看起来是字段.但对于类型的实现者,属性看起来像是一个方

Xcode 创建.a和framework静态库(转)

最近因为项目中的聊天SDK,需要封装成静态库,所以实践了一下创建静态库的步骤,做下记录. 库介绍 库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行.库分静态库和动态库两种.iOS中的静态库有 .a 和 .framework两种形式:动态库有.dylib 和 .framework 形式,后来.dylib动态库又被苹果替换成.tbd的形式. 静态库与动态库的区别 静态库和动态库是相对编译期和运行期的:静态库在程序编译时会被链接到目标代码中,程序运行时将不再需要改静态库:而动态库在程序

STORM_0008_Structure-of-the-codebase_Storm的代码库的结构

http://storm.apache.org/releases/1.0.1/Structure-of-the-codebase.html Structure of the codebase 源码分成独立的三层 第一:在最开始的时候Storm就被设计成支持多种语言,Nimbus是一种Thrift的服务,Topologies是一种Thrift类型的结构.Thrift的使用使得Storm可以被任何语言使用. 第二:所有的Storm的接口都被声明为java接口,虽然内部的实现有很多的Clojure但是

iOS SDK开发之 .framework静态库

查看.a静态库的生成及使用单击此处 注:这篇教程将只使用一小部分Objective-C代码,本文主要讲解从开始到应用的详细步骤.环境:xcode 9.2下面我们开始操作: 第一步:创建一个静态库工程 打开Xcode,选择新建一个项目,新建Cocoa Touch Framework.名称看自己需求起名,我直接叫MYSDK. 创建完成后已经有一个.h文件MMYSDK.h和Info.plist文件,如果想要新实现方法封装成SDK可以直接新建类在里面实现,也可以将自己已经实现功能的类添加到工程里面.(这

封装自己的framework静态库

ios中我们写的代码有时不愿意让别人看到,可能对它进行封装,生成一个静态库如典型的.a,还有一种就是和 苹果自带的库一样的后缀名为.framework的库,个人推荐使用.framework,因为.a不仅要装其添加进去,还要 将对应的头文件添加到项目中. 1.新建一个静态库工程.file--new--project,弹出框中选择Ios--framework&library中的cocoa touch static library.点击NEXT.输入product name,这里为libZW. 2.删

转:Delphi语言最好的JSON代码库 mORMot学习笔记1

mORMot没有控件安装,直接添加到lib路径,工程中直接添加syncommons,syndb等到uses里 --------------------------------------------------------- 在进行网络编程中需要JSON对象的构建与解析,这个Delphi XE+自带:{$IF CompilerVersion>22}, System.JSon{$ELSE}, DBXJSON{$IFEND}不过,不好用,大家更喜欢SuperObject.我本人以前一直用JsonDa

c# 通用类型系统 深拷贝 浅拷贝 函数传参

c# 通用类型系统 及变量在 深拷贝 浅拷贝 函数传参 中的深层次的表现 在编程中遇到了一些想不到的异常,跟踪发现,自己对于c#变量在内存上的表现理解有偏差,系统的学习并通过代码实验梳理了各种情况下,变量在内存级的表现情况,对以后的coding应该有些帮助.在此记录以免忘记了... 1. 通用类型系统 先来一张图: 通用数据类型分为了值类型和引用类型. 我们定义一个int型实际上是一个system.int32的实例,在语法上我们像使用其他的类对象一样,但是,存储的的仍然是基本类型.这种把基本类型

Delphi语言最好的JSON代码库 mORMot学习笔记1

在进行网络编程中需要JSON对象的构建与解析,这个Delphi XE+自带:{$IF CompilerVersion>22}, System.JSon{$ELSE}, DBXJSON{$IFEND}不过,不好用,大家更喜欢SuperObject.我本人以前一直用JsonDataObjects.今天要给大家介绍的这套JSON代码库算是“世外高人”,身怀绝世武功,而默默无闻,这就是 mORMot 系列开发框架.这是一个功能超级强大,学习曲线壁陡的开源框架. http://synopse.info/

Overview of the Oppia codebase(Oppia代码库总览)

Oppia is built with Google App Engine. Its backend is written in Python, and its frontend is written using AngularJS. Oppia是基于Google App Engine开发建设的.它的后台是用Python编写,前端是用AngularJS编写. The core核心 Most of Oppia's functionality is in the core/ directory, w