CLR via C# 读书笔记1-7

CLR Via C# 读书笔记 这是国外一位程序员写的CLR Via C#读书笔记,写得挺好,拿出来跟大家分享 立即下载

通用类型系统 Common Type System (CTS)

CLR 中的各种类型扮演了最终要的角色,它们决定了一种程序语言与另一种程序语言交互的机制。基于此点 Microsoft 建立一个规范—通用类型系统 Common Type System (CTS)—它描述了类型怎样定义及行为。
PS: Microsoft 已经向 ECMA 提交了 CTS (连同 .NET Framework 中的文件格式, metadata, IL,以及 P/Invoke) 作为一种规范的申请。这个规范称之为Common Language Infrastructure (CLI) 也就是 ECMA-335。另外Microsoft 也提交了 FCL, C# 程序语言(ECMA-334) 以及 C++/CLI 程序语言。
详情可参照 ECMA 官网: http://www.ecma-international.org
或者 Microsoft 官网:http://msdn.microsoft.com/en-us/netframework/aa569283.aspx http://www.microsoft.com/openspecifications/en/us/programs/community-romise/default.aspx.
CTS 规范指出一个类型可以包含0个或多个成员,以下是摘要:
■ 字段(Field)
■ 方法(Method)
■ 属性(Property)
■ 事件(Event)

CTS 也规范了各成员的可见类型:
■ Private: 仅对自身可见
■ Family: 仅对派生类可见(不管是否在同一程序集中),许多语言(如 C++, C#) 把这视为 protected
■ Family 及 Assembly: 仅对同一程序集中派生类可见,许多语言(如 C++, C#)不支持,IL Assembly 语言支持
■ Assembly: 仅对同一程序集中的类可见,许多语言视之为 internal
■ Family 或 assembly: 对派生类可见(不管是否在同一程序集中),对同一程序集中的类也可见。C# 视为 protected internal
■ Public 对所有程序集的所有类型都可见

CTS 还定义了类型继承,虚拟方法,对象生命期等规则,这些规则不需要死记硬背,许多规则你选择的开发语言已经限定了,另外的会提示你。比如 CTS 只允许继承自一个父类,而 C++ 允许继承自多个类,Microsoft’s C++/CLI 编译器在遇到这种情跨功能的时候就会提示一个编译错误。

这里还提一个 CTS 规则:所有类型都集成自一个预定义类型(System.Object)。

介于此所有的类型都具有以下的成员函数/功能:
■ 比较两个实例是否相等Compare two instances for equality.
■ 获取实例的 hash 值code for the instance.
■ 获取实例的类型
■ 对实例进行 shallow (bitwise) 拷贝
■ 获取实例当前状况的 string 表述

社会网络仿真软件:NetLogo_(14).社会网络数据导入与导出 在NetLogo中,社会网络的仿真不仅依赖于模型的内部逻辑,还需要能够灵活地导入和导出数据。这使得用户可以利用外部数据来初始化模型,或者将模型的运行结果导出以便进一步分析。本节将详细介绍如何在NetLogo中实现社会网络数据的导入和导出,包括常见的数据格式和具体的代码示例。 阅读详情

相关推荐

别再只盯着MES了!半导体/面板厂CIM系统全家桶(EAP/YMS/SPC)保姆级入门指南

本文深入解析半导体制造中的CIM系统,涵盖EAP、YMS和SPC等关键子系统的协同工作。通过实战案例和技术细节,展示如何利用CIM系统提升生产效率、良率管理和设备维护,为半导体/面板厂提供全面的实施指南和优化策略。

weixin_33693070的博客 462

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

CLR寄存和AppDomain的简介

郑林的专栏 1382

数据中心——Vxlan基本概念1

东西流量指的就是横向流量-------例如:服务器与服务器之间交换流量南北流量指的就是纵向流量-------例如:客户端和服务器之间的流量以下主要是讲解业务平面的网络架构(一般业务平面就需要用到专用的数据中心交换机)

m0_49864110的博客 1万+

CLR via C# 读书笔记2-6

Culture 程序集包含有 culture 信息,并作为其标示的一部分,程序集能被限定为某一特定的 culture (German, US English 等等),Culture 使用一个字符串(RFC 1766)来标示。 通常一个仅包含源代码的程序集,并不包含特定的 culture 信息,所以也就不需要特别指定,这样的程序集是中性 culture (culture neutral)的。

sqlchen的专栏 740

计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第一、二章 计算机系统概述 数据的机器级表示

计算机组成与系统结构(第三版) 袁春风主编 课后习题答案讲解 第一、二章 计算机系统概述 数据的机器级表示

qq_73523062的博客 2087

HOPE:基于强化学习的混合策略路径规划器,适用于多样化停车场景

本文提出了一种混合策略路径规划器(HOPE),用于解决自动停车中的路径规划问题。HOPE结合了强化学习(RL)和Reeds-Shepp(RS)曲线,通过动作掩码机制引导RL智能体的探索,并利用Transformer融合环境感知信息与掩码。该方法在多样且复杂的停车场景中实现了超过97%的成功率,并通过真实实验验证了其泛化能力。此外,本文还提出了基于空间与障碍物分布的停车场景难度分级标准,进一步提升了训练与评估的效率。实验结果表明,HOPE在规划成功率和跨场景泛化能力上均优于传统的基于规则算法和朴素强化学习方法

weixin_42783201的博客 1466

《CLR Via C#》读书笔记,持续更新...

《CLR Via C#》读书笔记,持续更新... 写了快5年代码了,一直都是使用别人发明的语言,别人发明的框架做快速开发,还从来没有真正深刻的学习过底层的一些东西,于是今年我打算读《CLR Via C#》这本书,认识一下C#的底层,我觉得看这本书起码对日后代码的调优有用,以下读书笔记仅记录我在读书过程中看到的认为有用的,平时不容易被注意到...

weixin_30681615的博客 227

用Java实现对接豆包ai火山引擎详细版简单明了ai对话

第二部分代码实现。

m0_72637700的博客 8606

CLR via C# 相关读书笔记

CLR via C# 2nd CLR via C# 3nd 麒麟.NET 转载于:https://www.cnblogs.com/michael110/archive/2011/03/07/1974517.html

anyanyu2851的博客 161

ESP32-C3入门教程 基础篇⑩——SNTP(Simple Network Time Protocol) 网络时间同步的简单实例

ESP32-C3入门教程 基础篇⑩——SNTP(Simple Network Time Protocol) 网络时间同步的简单实例

1589

基于STM32L4XX、HAL库的BQ27520YZFR-G4 电量监测计驱动程序设计

(可选) -------- TS (Pin 3) 连接温度传感器。(可选) -------- BAT (Pin 2) 连接电池正极。// 假设I2C1已初始化。// 每5秒更新一次。// 短暂延时确保数据准备好。支持Impedance Track™技术,提供高精度电量测量。适用于便携式设备如智能手机、平板电脑等。// 可添加初始化验证代码。// 初始化BQ27520。// 发送控制子命令。// 配置模拟滤波器。// 配置数字滤波器。// I2C1初始化函数。

zhusl6688的博客 243

CLR via C# 3 读书笔记(7):第1章 CLR执行模型 — 1.7 通用类型系统

类型是CLR的基本,微软创建了一个正式的规约——通用类型系统(Common Type System,CTS)来描述类型的定义和行为。 CTS规约规定,类型可以包含0个或多个成员。 字段(Field):属于对象状态部分的数据成员。字段由字段的名称和类型来标识。 方法(Method):在对象上执行某种操作的函数,通常会改变对象的状态。方法包含名称、签名和修饰符。签名指定了方法参数的个数(...

weixin_30632089的博客 74

cuMotion 入门教程(一)面向机器人学的GPU加速运动生成技术

NVIDIA cuMotion是一款高性能机器人运动生成库,专注于机械操作任务,利用GPU加速技术提升性能。开发者预览版支持运动学/逆运动学、碰撞感知路径规划、轨迹优化等功能,兼容任意自由度机器人。该库提供C++和Python接口,支持从URDF/XRDF文件加载机器人模型,包含世界建模、碰撞检测等工具。教程详细介绍了安装配置、机器人描述加载、运动学计算、世界建模、逆运动学求解以及轨迹优化等核心功能。cuMotion整合了Lula和cuRobo库的技术优势,将成为Isaac ROS的核心组件,适用于工业机器

2506_90492529的博客 2193

CLR基础之一---认识CLR [《CLR via C#》读书笔记]

《CLR via C#》读书笔记 什么是CLR CLR的基本概念 通用语言运行平台(Common Language Runtime,简称CLR)是微软为他们的.Net虚拟机所选用的名称。这是通用语言架构(简称CLI)的微软实现版本,它定义了一个代码运行的环境。CLR运行一种称为“通用中间语言”的字节码,这个是微软的通用中间语言实现版本。 CLR运行在微软的视窗操作系统上...

weixin_30872499的博客 2241

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

假人有限元模型

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

NET CLR via C#读书笔记 - 第一章 CLR执行模型

NET CLR via C#读书笔记 - CLR执行模型CLR执行模型1.1 CLR简介1.2 CLR执行模型1.2.1 将源代码编译成托管模块 CLR执行模型 1.1 CLR简介 CLR(Common Language Runtime(公共语言运行时))可以简单理解为是一个支持多种编程语言及多语言互操作,完整的高级虚拟机。   程序在运行的时候有着惊人数量的运行时依赖。每个有用的程序都需要某些运行时函数库,以便其能跟电脑的其它资源(如用户输入设备,磁盘文件,网络通信等)交互,同时程序也需要转换成计算机硬

CreateNewWorld的博客 471

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

CLR via C# 读书笔记目录

一口气写了CLR via C# 两章的笔记,有些内容自己也似懂非懂,有些则觉得很好很强大,所以趁此机会作个目录同时为每篇文章打个评分:  纯理论,无聊 有参考价值,可看 有实用价值,必看 CLR via C# 读书笔记1-1: 托管模块 (Managed Modules)定义 CLR via C# 读书笔记1-2:程序集(Assemblies)定义 CLR via C# 读书笔记1-3

sqlchen的专栏 909

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

NET CLR via C#读书笔记 - 第七章 常量和字段

NET CLR via C#读书笔记 - 第七章 常量和字段1 常量1.1 常量定义1.2 常量的特点和限制2 字段2.1 字段定义2.2 字段修饰符 1 常量 1.1 常量定义   常量是从值不变化的符号,定义常量符号时,值必须在编译阶段就确认,编译后常量将保存在程序集的元数据中。 1.2 常量的特点和限制   ① 只能定义编译器支持的基元类型的常量,定义非基元类型的常量,必须要将值设置为null(意义不大)。   ② 常量值永不改变,通常被视为类型的一部分(被视为静态成员,而不是实例成员)。   ③ 定

CreateNewWorld的博客 219

[CLR via C#读书笔记]第一章 CLR执行模型

CLR简介 CLR(Common Language Runtime)是一个可以由多种语言使用的“运行时",它与具体使用哪种语言无关,只要编译器支持CLR,无论选择什么语言,相应编译器都会将代码编译成一个托管模块,即一个标准的32位PE(Portable Executable)文件或64位PE32+文件,该模块需要CLR才能执行。 CLR的主要功能包括(1)内存管理;(2)程序集加载;(

胖子没有错! 1302

NET CLR via C#读书笔记 - 第九章 参数

NET CLR via C#读书笔记 - 第九章 参数1 可选参数和命名参数1.1 代码示例1.2 可选参数以及命名参数的规则和原则2 以引用方式传参3 可变数量的参数 1 可选参数和命名参数 1.1 代码示例   可选参数就是函数包含默认值得形参,命名参数是指调用方法的时候通过指定参数名称来传递实参,代码示例如下: public sealed class Demo{ //定义含有默认参数值的函数 其中x,s就是可选参数 public void dpFunc(int x = 0,string s = "

CreateNewWorld的博客 264

《CLR via C#》读书笔记-.NET多线程(三)

主要记录了CLR线程池的基本知识、CLR线程池的几个常用方法,以及执行线程与辅助线程的上下文的“流动”,对应《CLR via C#》的26.1-26.3小节

郑林的专栏 981

《CLR via C#》第六章 读书笔记

第六章 类型和成员基础 第一节 类型的各种成员 1、类型中可定义0个或多个以下种类的成员:常量、字段、实例构造器、类型构造器、方法、操作符重载、转换操作符、属性、事件、类型。 2、无论什么编程语言,编译器都必须能处理源代码,为上述每种成员生成元数据和IL代码。所有编程语言生成的元数据格式完全一致。这正是CLR成为“公共语言运行时”的原因。元数据是所有语言都生成和使用的公共信息。(疑问:面向...

qq_41543031的博客 241

《CLR via C#》第八章 读书笔记(未完结

第八章 方法 第一节 实例构造器和类(引用类型) 1、构造器方法在“方法定义元数据表”中始终叫做.ctor(constructor的简称)。创建引用类型实例时,首先为实例的数据字段分配内存,然后初始化对象的附加字段(类型对象指针和同步块索引),最后调用类型的实例构造器来设置对象的初始状态。 2、构造引用类型的对象时,在调用类型的实例构造器之前,为对象分配的内存总是先被归零。 3、实例构造器...

qq_41543031的博客 250

CLR via C#读书笔记一:CLR的执行模型

CLR(Common Language Runtime)公共语言进行时是一个可由多种编程语言使用的“进行时”。 将源代码编译成托管模块 可用支持CLR的任何语言创建源代码文件,然后用对应的编译器检查语法和分析源代码。无论选择哪个编译器,结果都是托管模块(managed module)。托管模块是标准的32位Microsoft Windows可移植执行体(PE32)文件,...

198

clr via c#读书笔记四:call、callvirt

1、嵌套类,就是定义在类中的类;嵌套类可以访问外部类的方法、属性、字段而不管访问修饰符的限制,但是外部类只能够访问修饰符为public、internal的嵌套类的字段、方法、属性; 2、CLR如何调用虚方法、属性和事件: IL提供两个方法调用指令:call和callvirt。 call调用静态方法、实例方法和虚方法;callvirt调用实例方法和虚方法,不能调用静态方法; ...

408

[Clr via C#读书笔记]Cp1CLR执行模型

Cp1CLR执行模型 本章的概念点 CLR=Common Language Runtime 内存管理,程序集加载,安全性,异常处理和线程同步、CLR是基础,支持着面向它的各种语言。各种语言会被对应的编译器转换为托管模块。 不同语言有各自的优点和不足。 在需要托管程序运行的电脑上必须安装CLR(.NET Framework). 托管模块managed module PE32,PE32+=...

diawuzi7244的博客 167

CLR via C# 读书笔记1-1

CLR via C# 读书笔记1-1 把源代码编译为托管模块 (Managed Modules) 进行开发之前,你首先需要选择你擅长的语言。某些时候这很难抉择,因为不同的开发语言提供不同的开发特性。例如:非托管 C/C++ 提供了操作系统非常底层的控制权,你能够随心所欲地管理内存,轻而易举地建立线程,等等。 相反的 Microsoft Visual Basic 6.0 让你能快速的开发 UI

sqlchen的专栏 888
上一篇: CLR via C# 读书笔记1-6
下一篇: CLR via C# 读书笔记1-8
sqlchen
博客等级 码龄24年 10粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值