(一)CSharp-Net框架

news2024/12/28 2:45:35

.NET框架由三部分组成:
1.编程工具。
2.基类库(BCL).
3.公共语言运行库(CLR)

CLR 在运行时管理程序的执行,包括以下内容:

  • 内存管理和垃圾收集。
  • 代码安全验证。
  • 代码执行、线程管理及异常处理。
    请添加图片描述

NET 框架的特点以及其带来的好处:

  • 1)面向对象的开发环境
  • 2)自动垃圾收集
    CLR 有一项服务称为 GC(垃圾收集器),它能自动管理内存。GC 自动从内存中删除程序不再访问的对象。
  • 3)互操作性
  • 4)不需要 COM
  • 5)简化的部署
  • 6)类型安全性
  • 7)基类库

编译成 CIL

请添加图片描述

编译成本机代码并执行
在运行时,CLR 执行下面的步骤:

  • (1)检查程序集的安全特性;
  • (2)在内存中分配空间;
  • (3)把程序集中的可执行代码发送给即时(just-in-time,JIT)编译器,把其中的一部分编译成本机代码。

请添加图片描述

托管代码:为.NET 框架编写的代码称为托管代码,需要CLR。
非托管代码:不在 CLR 控制之下执行的代码,比如 Win32 C/C++ DLL,称为非托管代码。

编译和执行

请添加图片描述

CLR

请添加图片描述

CLI

公共语言基础结构

请添加图片描述

CLI 的重要组成部分
1.公共类型系统
CTS (公共类型系统)定义了那些在托管代码中一定会使用的类型的特征:

  • CTS 定义了一组丰富的内置类型,以及每种类型固有的、独有的特性;
  • .NET 兼容编程语言提供的类型通常映射 CTS 中已定义的内置类型集的某一个特殊子集。
  • CTS 最重要的特征之一是所有类型都继承自公共的基类——object。
  • 使用 CTS 可以确保系统类型和用户定义类型能够被任何.NET 兼容的语言所使用。

公共语言规范
CLS(公共语言规范)详细说明了一个 .NET 兼容编程语言的规则、属性和行为,其主题包括数据类型、类结构和参数传递。

请添加图片描述

C# 的演化

请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616933.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

web测试工程师的工作职责(合集)

web测试工程师的工作职责1 职责: 1、 负责数据平台产品的测试工作,参与产品需求分析,负责方案制定,并能预先评估项目风险,确保测试活动的顺利开展; 2、 深入理解系统内部的设计原理,并能从测试的角度提供优化意见; 3、 根据产品需…

【Linux】多线程概念初讲

线程大章节第一篇文章 文章目录 前言一、linux线程基本概念二、线程与进程的对比 1.线程控制的接口总结 前言 什么是线程呢? 在一个程序里的一个执行路线就叫做线程( thread )。更准确的定义是:线程是 “ 一个进程内部的控制…

Nginx+Tomcat负载均衡、动静分离,4层代理,7层代理

一:7层反向代理 Nginx 服务器:192.168.52.200:80 Tomcat服务器1:192.168.52.201:80 Tomcat服务器2:192.168.52.108:8080 192.168.52.108:8081 一.部署Nginx 负载均衡器 1.关闭防火墙 注意:所有的虚拟机都要注意关闭防…

硬件入门什么是之电阻

第1章 硬件入门什么是之电阻 文章目录 第1章 硬件入门什么是之电阻[TOC] 一、电阻基本概念二、电路设计实际应用1.限流( 恒流)2.分压 { 采样:电阻精度至少为1%}3.上拉和下拉4.分担功耗5.通信芯片的阻抗匹配 总结 一、电阻基本概念 对电流有阻碍作用的导体叫做&…

NFS(Network File System)服务搭建

NFS基础服务搭建 环境介绍:服务拓扑:nfs serverclient1临时挂载永久挂载client2临时挂载永久挂载注意事项:环境介绍: 系统全为centos7系统 使用本地yum源 服务拓扑: nfs server yum -ty install nfs-utilst rpcbind setenforce 0 mkdir /var/{world,cloud} echo -e “/va…

【Python XML】零基础也能轻松掌握的学习路线与参考资料

Python是一种广泛使用的编程语言,可以用来处理各种数据类型,并且具有广泛的应用,从Web开发到人工智能都能够胜任。在这样的大环境下,XML(扩展标记语言)成为了一项非常重要的数据交换格式,它提供…

JAVA对象头的指针压缩

JAVA对象头的指针压缩 文章目录 JAVA对象头的指针压缩对象在JVM中的内存布局对象的访问定位压缩实验实验步骤压缩策略组合压缩内容压缩后的影响指针压缩的实现 JVM内存关键大小 对象在JVM中的内存布局 在 Hotspot 虚拟机中,对象的内存布局主要由 3 部分组成: 对象头…

OpenMMLab AI 实战营笔记4——MMPreTrain算法库:构建高效、灵活、可扩展的深度学习模型

文章目录 摘要一、工具箱介绍二、丰富的模型三、推理API四、环境搭建——OpenMMLab软件栈五、OpenMMLab重要概念——配置文件六、代码框架七、配置及运作方式经典主干网络残差网络Vison Transformer(VIT)注意力机制自监督学习常见类型SimCLRMAE自监督学习 多模态CLIPBLIPOthers…

jvm 命令和工具

目录 堆内存分析工具 MAT ZProfiler - 线上的mat EagleEye-MProf - 命令行 命令行 线程池排查 jstack jmap -dump jmap -heap jstat 堆内存分析工具 MAT eclipse官方推出的本地内存分析工具,运行需要大量内存,从使用角度来讲,并不…

Mysql查询优化

Mysql查询优化器 在多种情况下,可能会导致查询结果从缓存中清除,例如:. 数据可能已被修改 您可能运行了一条语句,其文本与缓存的语句略有不同(小写/大写,换行符,...) 缓存可能已达到其大小限制之一(内存,查询计数,块等),并决定逐出您的特定查询 高速缓存碎片过多…

DatenLord前沿技术分享 No.26

达坦科技专注于打造新一代开源跨云存储平台DatenLord,通过软硬件深度融合的方式打通云云壁垒,致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题,以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。达坦科…

SpringBoot+MyBatisplus搭建校园新闻平台——已开源

概述 开发背景 校园新闻平台是以新闻宣传机构的在线信息发布需求为基础,随着数字化和信息化的快速发展,校园新闻在校园内的传播和沟通中变得越来越重要。学校需要一个有效的管理系统来整合、发布和传播校园新闻,以满足师生、校友和其他利益…

我对测试行业发展和自我价值诉求的思考

测试圈子生态的思考 其实测试的生态,说起来蛮简单的,一个词语概括就是两极分化。有个梗:hand hands,load loads,太贴切了。 两极分化这个词,可以从下面三个维度来看: 薪资 我认识的测试也算不少…

搜索插入位置 力扣 Python

题目描述: 解题代码: class Solution:def searchInsert(self, nums: List[int], target: int) -> int:if target in nums:return nums.index(target)else:nums.append(target)nums.sort()return nums.index(target)题目分析: 时间复杂度…

0804空间直线及其方程-向量代数与空间解析几何

文章目录 1 空间直线方程1.1 空间直线的一般方程1.2 空间直线的对称式方程1.3 空间直线的参数方程1.4 空间直线的两点式方程 3 两直线的夹角4 直线与平面的夹角4.1 定义4.2 夹角的正弦公式 5 例题6 平面束方程结语 1 空间直线方程 1.1 空间直线的一般方程 空间直线L可以看做是…

【3DsMAX】从零开始建房(4)

目录 1. 制作二层主体 2. 制作二楼顶层栏杆 1. 制作二层主体 将二层的长方体转换为可编辑多边形,将左半部分的点向左移动一点距离 选中左右边线进行连接 移动连接线 选中如下的面挤出 选中一条边线,再点击环形 再点击连接 挤出 选中如下一条边线向上移…

【Windows安装】Windows详细安装nginx部署教程

1、先下载直接去官网nginx.org 点击后就会下载,下载完成后开始安装,其实官网已经告诉了如何安装,右侧“documentation -> nginx windows”就有详细的说明,只是英文而已 2、下载完成后,解压缩,运行cmd&a…

【网络工程师必备知识点】从头认识IPv6!

1. IPv6 的背景 IPv4 地址空间已经消耗殆尽,近乎无限的地址空间是 IPv6 的最大优势 2. IPv6 基本报头 在 IPv4 的基础上增加了流标签,去掉了一些冗余字段,使报文头部的处理更 为简单、高效 3. IPv6 扩展报头 是跟在 IPv6 基本报头后面的可…

自定义类型作为map或者unordered_map的key需要额外做哪些事情

文章目录 1、自定义类型作为map的key2、自定义类型作为unordered_map的key 1、自定义类型作为map的key map中有4个参数&#xff0c;前两个参数是key和val的类型&#xff0c;第三个参数表示比较的仿函数&#xff0c;用于对键值进行比较&#xff0c;默认情况下采用less<Key>…

Shell脚本攻略:shell实现pxe无人值守安装

目录 一、实验 1.shell实现pxe无人值守安装 一、实验 1.shell实现pxe无人值守安装 &#xff08;1&#xff09;脚本截图 1 echo set nu > ~/.vimrc2 systemctl stop firewalld3 setenforce 04 umount /dev/sr0 /mnt5 mount /dev/sr0 /mnt6 cd /etc/yum.repos.d/7 mkdir b…