CLR via C#读后感1-CLR的执行模型

2篇5章1节:实验流行病学的核心特征和设计原则 本文系统阐释实验流行病学的核心定义、四大核心特征、四大基本原则及主流设计类型,结合骨科、肿瘤科、儿科、精神科、内外妇儿及公共卫生等多学科临床实践案例,具象化解读人为干预、随机分组、平行对照、前瞻性设计的核心内涵与应用价值。同时,规范梳理对照、随机、盲法、重复四大研究基本原则,详细介绍临床试验、现场试验、社区试验三类主流研究设计的适配场景与应用差异。 阅读详情

CLR via C#这本书是无意间在网上看到别人极力推荐的,找到pdf扫描本后,就迫不及待的看了起来。通过前几章的阅读,发现对.NET底层有了一种新的认识,不再像以前一样只是单纯的写代码。尤其是CLR(Common Language Runtime)的作用,运行方式,有了个大致概念。

CLR是一个可由多种编程语言使用的“运行时”,CLR的核心功能(内存管理,程序集加载,安全性,异常处理,线程同步)可由面向CLR的所有语言使用,所以,在编写源文件的时候,可以选择多种语言(C++/CLI,C#,J#,VB,IronPython,IronRuby,或者IL),至于IL,是微软的一个中间语言,任何C#源代码,都要编译成MSIL+元数据作为托管模块,在运行的时候,CLR运行托管模块,将IL再由JIT(Just-In-Time)编译为本机代码,最终执行。

每一个托管模块包括四个部分:

1.PE32或PE32+头。指明了运行环境是32(64)位或64位Windows系统。

2.CLR头。包含了需要的CLR版本,一些flag,托管模块入口方法(Main方法)以及各种信息。

3.元数据。每个托管模块都包含元数据表,有两种类型,一种类型的表描述源代码中定义的类型和成员,一种类型的表描述源代码中引用的类型和成员。

4.IL代码。编译器编译源代码后生成的代码,在运行的时候,CLR再将IL编译为本地CPU指令。

 

1.执行程序集代码。

为了执行一个方法,必须先将IL指令编译成本地指令,这是CLR的JIT编译器的职责,一个方法(自定义或者FCL函数)在第一次执行时,会造成一些性能损失,因为要对它进行编译,以后对其方法的所有调用,都采用本地代码(本机CPU代码)的形式全速运行,无需再次编译。JIT编译器将本地CPU指令存储在动态内存中。一旦应用程序终止,编译好的代码就会被丢弃。所以,将来再次运行应用程序,或者同时启动两个应用程序实例(在操作系统中,启动两个相同的应用程序也被认为是两个不同的进程),JIT编译器必须再次将IL编译为本地指令。

2.通用类型系统(CommonTypeSystem,CTS)。

CLR完全围绕类型展开的,所以有了”通用类型系统”CTS(CommonTypeSystem),它描述了类型的定义和行为。使用的语言不同,定义类型的语法也不同,但是无论使用哪种语言,类型的行为都是相同的,因为最终是由CLR的CTS来定义类型的行为。比如C#中,int为32位整形数,而在CTS中,Init32为32位整形数,定义了一个int型变量a,a最终都会生成为Init32型。再比如string就是C#的变量类型,而String就是CTS的变量类型。一般情况下,大写的都为CTS类型。

3.公共语言规范(CommonLanguageSpecification,CLS)。

只有语言遵循了Microsoft定义的CLS规范,一个语言才可以访问另一个语言类型的成员。

4.与非托管代码的互操作性。

托管代码就是指运行时,是托管在CLR上,由CLR具体调度、执行、管理。非托管代码指直接调用Win32API进行运行操作。C++.NET并不是传统的C++的扩展,而是将C++程序重新架构,托管在CLR上执行。称为Managed C++。

托管代码可以调用DLL中的非托管函数,托管代码可以使用现有的COM组件,非托管代码可以使用托管类型。

 

 

.NET的架构图(3.5之前)

通用语言基础架构(Common Language Infrastructure,CLI)

通用语言运行平台(Common Language Runtime,CLR),是对CLI这个架构在Windows平台的实现

类库(Framework Class Library,FCL),所有在.NET能够使用的类库。

基类库Base Class Library(BCL),其中包含一些基础的类,如:IO,String,Net等等。

公共语言规范Common Language Specification (CLS) 

公共类型系统Common Type System (CTS)

 

 

FCL与BCL的区别就是,FCL是一个大框架,下面分为BCL与补充类库,补充类库是在基础类库上做的补充,如:ADO.NET、ASP.NET、Windows.Forms等

高通平台蓝牙学习-- 基于WCN6750 Bluetooth 5.2的讲解 摘要:蓝牙5.2解决方案WCN6750具备多项先进特性:完全兼容5.2标准及ANT+协议,支持2Mbps高速BLE和长距离传输;采用射频集成方案,与WLAN共享天线并支持5G并发;内置功率放大器,支持Class1/2传输;提供双音频流和Slimbus接口优化。其HCI UART接口支持3.2Mbps速率,通过BlueZ协议栈实现蓝牙5.2功能,包括2Mbps模式和长距离传输,符合核心规范要求。(149字) 阅读详情

相关推荐

解码运动想象:BCI Competition IV 2a数据集实战指南

本文提供了BCI Competition IV 2a数据集的实战指南,详细解析了该经典运动想象脑电数据集的结构、文件格式与实验范式。通过MNE-Python等工具,逐步演示了从原始信号读取、预处理(通道选择、滤波、分段)到特征提取(CSP、频带功率)和模型训练(LDA、SVM)的完整流程,并强调了受试者独立评估的重要性,为BCI研究者提供了可复现的入门与进阶路径。

weixin_29304985的博客 362

CLR via C#读后感2-类型基础

CLR要求所有的类型都从System.Object派生,也就是说Object是所有类型的父类。这样就标明所有类型都应该具有Object类的以下方法。Equal:两个对象如果有相同的值,就返回True。GetHashCode:返回对象值的一个哈希码。ToString:该方法默认返回对象完整名,即this.GetType().FullName,我们经常重写该方法,使返回String对象。GetType:返回一个对象的实例,指出调用GetType对象的类型。CLR要求所有对象都用new操作符来创建:Employe

学无止境! 971

Windows环境下DataEase一站式安装指南(含WSL2+Docker配置)

本文详细介绍了在Windows环境下通过WSL2和Docker快速部署DataEase的完整教程。从WSL2配置、Docker环境搭建到DataEase离线安装,逐步指导用户完成一站式部署,特别适合需要快速搭建数据分析平台的开发者。教程包含常见问题解决方案和性能优化技巧,帮助用户高效使用这款国产开源数据可视化工具。

weixin_42526166的博客 392

AArch64平台Qt 5.14.2静态交叉编译实战:从零到一跑通

在嵌入式开发中,目标板运行环境往往与开发机差异巨大,交叉编译是解决异构架构软件构建的常用手段。尤其在ARM64等架构上,程序部署常因动态库缺失、C库版本不匹配而失败。Qt应用作为典型重量级依赖,动态部署时经常遇到QPA平台插件找不到或libQt5Core.so链接失败等问题。通过使用aarch64交叉工具链,合理配置Qt的静态编译参数,可以将整个Qt框架封装进单个可执行文件,从而摆脱对目标板Qt运行环境的依赖,大幅提升程序可移植性。该方法适用于工业控制面板、简单Widgets界面等纯CPU渲染场景。实践过程

weixin_33842304的博客 273

【锂离子电池力学耦合及相场法模拟技术与应用】

8. 电化学仿真软件的使用与案例分析 (1) 各向异性纳米线锂化应力分析(实例讲解1) (2) 化学反应及死锂现象研究(案例分析2)(3) 锂化循环损伤计算(案例分析3)6. 4. 电池材料的力学与电化学耦合性能分析(1) 耦合效应对电池性能的影响(2) 耦合模型的验证与应。5. 5. 电池颗粒、极片、电芯尺度力-电-化-热多场耦合模型概述力学-7. 颗粒尺度耦合模型在电池失效分析中的应用。2. 2. 电池电极材料的分类与特性。5. (2) 耦合模型的验证与应用。电化学耦合模型与仿真。

weixin_51101456的博客 520

量化交易零基础入门教程

特点 从零开始教编程。靠谱的量化交易学习资源稀少,且具有不讲编程、代码较难、过多等不适合新手等问题,本教程中则会从零开始教编程,解决量化入门过难过编程门槛这一问题。 量化与编程相结合。本教程不仅会教编程,而且会尽量结合量化情景,减少“我要做量化交易为什么要看这些用来培训程序员的东西”的愤懑。 简易精炼,快速入门。尽量只讲最核心最常用的知识,助你快速摆脱想学习量化却处处陌生不知所措的茫然的新手阶段。 读前说明 文后会有自测与自学,包括一些额外的延伸自学内容以及稍有难度的自测题目。 最最最基础的股票.

JanLEE 2885

CLR via C# (第三版)读后总结

版权归作者所有,任何形式转载请联系作者。 作者:V_火赤炼(来自豆瓣) 来源:https://book.douban.com/review/8609352/ 最近工作比较闲,我把这本书看了两遍。 第一遍是从17年3月份开始,断断续续直到上周读完,翻到最后一页的时候,心里如释重负,终于看完了,虽然这本书真的很厉害,但是看这么厚的书,真的很煎熬啊!然而,过了半天,我就忘记讲了什么,只记得委托是一个...

橙-极纪元-JJYCheng 1668

ROS从入门到精通0-1:教程导读

ROS概念太多太复杂?ROS从入门到精通系列订阅必看

FRIGIDWINTER的博客 1万+

读CLR via C#的观后感(1)

第一次读写写读后感:(如果有错请告知,小弟立马修改) 第一章(1) 执行程序的代码 c# 的代码(托管代码)到cpu指令 需要经过,CLR(公共语言运行库)的检测引用类型,再由JIT编译器找到对应该方法的IL,分配内存块,将IL编译成为CPU指令存入内存块.然后修改对应的条目,能指向这些内存块,跳转到内存块的本机代码. 其中,托管代码和非托管代码的区别: 非托管代码:也叫本地(native)代码. 托管代码:是由公共语言运行库(CLR)执行的代码,而不是由操作系统直接执行。本地代码经过两次编译,

zt13502162671的博客 210

冲压机器人系列编程:ABB IRB 6700_(6).RAPID编程语言入门

主菜单:包含文件、编辑、视图、工具等常用操作。项目浏览器:显示当前项目的文件结构,包括机器人模型、程序模块等。图形界面:用于创建和编辑机器人的虚拟环境。RAPID代码编辑器:用于编写和编辑RAPID代码。仿真控制面板:用于控制仿真过程,包括启动、暂停、停止等。变量是存储数据的容器,可以通过变量名访问和修改其存储的数据。变量定义时需要指定其类型和名称。% 定义一个整数变量并赋初值% 定义一个实数变量,未赋初值函数定义时需要指定其返回类型和参数。num result;子程序类似于函数,但不返回值。

zhubeibei168的博客 1378

WiFi偏门协议(四):增强的传输机制802.11aa

区分Unicast和Multicast的优先级,以及设定不同的重传次数,以细化EDCA机制。 SCS(StreamClassification Service) 如上图,在VI,VO内各自又增加了一个queue, 对应不同的MAC header。VI和VO内的两个queue可以分别对应UC和MC。这样就提供了同一个AC内的更细粒度的优先级区分。当然还可以使用Drop Eligibility Indication子域来区分不同的重传次数。 改善Multicast数据传...

reekyli的专栏 1790

给C#学习者的建议 - CLR Via C# 读后感

CLR Via C# 是一本经典的讲述CLR的教材,一直想好好读读,却一直没有去读。去年年末,终于下决心,买了一本纸质的CLR Via C#,元旦这几天在家里闭门读书(3天元旦 + 2天自己的带薪假期)。 其实,早就在网络上下载过了电子版的英语的CLR Via C#了,不过,电子书的问题也很明显,由于是免费的,所以不是很重视,买了纸质的书,自己花了真金白银,所以格外重视,不能对不起人民币啊(...

weixin_34018169的博客 114

《QT+PCL 第一章》:点云读取显示

点云读取显示一、核心代码二、QT设置三、效果展示 一、核心代码 二、QT设置 三、效果展示

阁楼 1万+

《CLR via C#》读书笔记-CLR寄宿与AppDomain

CLR寄存和AppDomain的简介

郑林的专栏 1382

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

框架设计( CLR via C# 2nd Edition ) 读后感

的的确确是本好书。这本书把.net平台上经常用的一些技术讲得是明明白白,让你读后只有一个感觉:通透,就好像吃了芥末一样。Jeffrey Richter在这本书中可谓深入浅出,浅的地方讲了C#语言的语法方面,深的地方,讲了语言背后的机制。不愧是大师级的人物。读这本书的前与后的区别是很大的,以前一些云里雾里的知识点都从这本书中找很很直接、明确的答案。在明白了一种技术背后的原理后,一个合格的程序员就应该

小徐的专栏 785

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

CLR via C#, Third Edition图书推荐及下载

我们先来看看这书的作者Jeffrey Richter,Jeffrey Richter是一位在全球享有盛誉的技术作家,尤其在Windows/.NET领域有着杰出的贡献。他的第一本Windows著作Windows 3: A Developer's Guide大获好评,从而声名远扬。之后,他又推出了经典著作《Windows 高级编程指南》和《Windows核心编程》。如今这两本书早已成为Window...

weixin_34235371的博客 203

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

关于C#本质论(第2版)的读后感

关于C#本质论(第2版) 评论读后感:这本书前一半讲得太基础了,后面的还不错,总体来说还是比较基础的知识,但我还是学到了不少新知识读后感:书内容不需说了,看好了才买的。但是,书的纸质不好,而且书胶也不好,带有很浓的刺激味。读后感:肯定是经典,不过我看了放出的样章,主要还是第一版里面的内容,添加了C# 3.0里面的新特性,对我的吸引力不大,不打算购买。。但是经典书?一定推荐,这就是一本由C#代言人Mark Michaelis著写的经典书! 对最新版的《CLR Via C#》感兴趣,希望“图灵丛书”能够尽快引进

899

《CLR via C#:框架设计》读书笔记 - 类型基础

《CLR via C#:框架设计》读书笔记 - 类型基础

小贱 619

C#本质论(第2版)的评论

关于C#本质论(第2版) 评论读后感:这本书前一半讲得太基础了,后面的还不错,总体来说还是比较基础的知识,但我还是学到了不少新知识读后感:书内容不需说了,看好了才买的。但是,书的纸质不好,而且书胶也不好,带有很浓的刺激味。读后感:肯定是经典,不过我看了放出的样章,主要还是第一版里面的内容,添加了C# 3.0里面的新特性,对我的吸引力不大,不打算购买。。但是经典书?一定推荐,这就是一本由C#代言人M...

weixin_30872337的博客 85

这个寒冬,如何让我们的身价翻倍?

这个寒冬,如何让我们的身价翻倍?——《深入理解.NET(第2版·英文版)》读后感微软4大名著评选结果揭晓在开始正文之前,我先给大家讲一个真实的故事:我有一位朋友,他的一位同学原来是做测试的,几乎没有碰过.NET,工资只有1.5k。后来,他辞职回家,利用3个月时间在家苦读了一本书。三个月后,他前往上海找工作,在微创谋得一份开发工程师的职位,月薪6.5K。面试的时候,他将在本书中所学的垃圾

图灵教育 2494
上一篇: iframe中页面如果有验证导致重复出现页面的问题
下一篇: CLR via C#读后感2-类型基础
mark4ever
博客等级 码龄17年 31粉丝 63原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值