C#从入门到放弃

news/2024/11/19 1:20:47/

C#和.NET的区别

C#

C#是一个编程语言

.NET

.NET是一个在window下创建程序的框架
.NET框架不仅局限于C#,它还可以支持很多语言
.NET包括了2个组件,一个叫CLR(通用语言运行时),另一个是用来构建程序的类库

CLR

用C++写一个程序,在一台8688的机器上运行,编译器就会编译为这种类型机器的机器码
在这里插入图片描述将编译好的机器码拿到另一个架构的机器上,就运行不了所以微软设计了C#语言和.NET框架,很大程度上借鉴了java社区的做法,在java中,编译器没有把程序转化为机器码,它编译为了一种中间代码,字节码。
在这里插入图片描述在C#中的概念也是一样,编译C#程序时,会生成一种叫做中间语言代码的东西,这与运行程序的的机器无关,这时只需要将中间码,转换为机器可以识别的机器码,这就是CLR的工作,它常驻内存中,将中间码转换为机器码,这个过程称为即时编译,JIT。

.NET框架

程序是由一些类的模块组合而成,这些类在运行时彼此合作,这样应用就可以实现某些功能。
类就是一个容器,用来承装一些叫做字段的数据,以及一些叫做方法的功能

程序中有成百上千的类,随着类的增加,就需要一种管理类的方法,这时候就需要用到命名空间。

命名空间就是用来装载类的,例如,在.NET框架中,每个命名空间就包含了很多类,随着命名空间的增加,我们就需要一种管理程序的结构,这时候就要用到程序集。

程序集是用来盛放相关的命名空间。执行编译时,编译器会根据代码的架构来创建程序集。


http://www.ppmy.cn/news/1548117.html

相关文章

源码解析-Spring Eureka(更新ing)

源码解析-Spring Eureka 文章目录 源码解析-Spring Eureka前言一、从Spring.factory和注解开始二、重要的一步EurekaServerInitializerConfiguration三、初始化了什么?自动保护 四, 重新回到EurekaServerAutoConfiguration关于unavailable-replicas 前言 无 一、从…

Nature Communications 基于触觉手套的深度学习驱动视触觉动态重建方案

在人形机器人操作领域,有一个极具价值的问题:鉴于操作数据在人形操作技能学习中的重要性,如何有效地从现实世界中获取操作数据的完整状态?如果可以,那考虑到人类庞大规模的人口和进行复杂操作的简单直观性与可扩展性&a…

高级sql技巧

一、窗口函数(Window Functions) 基本概念 窗口函数是一种特殊的函数,它可以在不改变结果集行数的情况下,对每一行进行计算。与聚合函数不同,聚合函数会将多行数据聚合成一行,而窗口函数会为每一行计算一个…

3步实现贪吃蛇

方法很简单,打开页面,复制,粘贴 一.整体思维架构 我们根据游戏的开始,运行,结束,将整个游戏划分成三个部分。在每个部分下面又划分出多个功能,接下来我们就根据模块一一实现功能。 二.Gamesta…

linux之时间服务器

序 在项目开发中,各个模块的时间同步是一个重要的机制;那么如何在linux上搭建时间服务器呢?并且客户端怎么与服务器进行时间同步呢? 时间服务器搭建 linux中有两种时间服务器: ntp服务器和chrony服务器 1.ntp服务器 1.1 安装 …

Leetcode 每日一题 125.验证回文串

问题定义 给定一个字符串s,我们需要判断它是否是一个回文串。但在此之前,我们需要将所有大写字符转换为小写字符,并移除所有非字母数字字符。只有经过这样处理后的字符串,我们才进行回文检测。 示例解析 以下是几个示例&#x…

释放高级功能:Nexusflows Athene-V2-Agent在工具使用和代理用例方面超越 GPT-4o

在不断发展的人工智能领域,Nexusflows 推出了 Athene-V2-Agent 作为其模型系列的强大补充。这种专门的代理模型设计用于在功能调用和代理应用中发挥出色作用,突破了人工智能所能达到的极限。 竞争优势 Athene-V2-Agent 不仅仅是另一种人工智能模型&…

借助Aspose.Email,拆分和合并 Outlook PST 文件

PST(个人存储表)文件由 Microsoft Outlook 用于存储电子邮件、日历事件、联系人和其他项目。随着时间的推移,随着电子邮件和其他数据的积累,它们会变得非常大,这可能会导致性能问题、管理困难和更高的损坏风险。为了应…