C#从入门到放弃

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框架中,每个命名空间就包含了很多类,随着命名空间的增加,我们就需要一种管理程序的结构,这时候就要用到程序集。
程序集是用来盛放相关的命名空间。执行编译时,编译器会根据代码的架构来创建程序集。

相关推荐
Lill_bin6 分钟前
Java中的分布式锁:原理、实现与最佳实践
java·开发语言·数据结构·分布式·算法·排序算法·maven
weixin_307779137 分钟前
Python带多组标签的Snowflake SQL查询批量数据导出程序
开发语言·python·sql
大模型铲屎官18 分钟前
Python 科学计算与机器学习入门:NumPy + Scikit-Learn 实战指南
开发语言·人工智能·python·机器学习·numpy·编程·scikit-learn
尤宸翎18 分钟前
Elixir语言的容量规划
开发语言·后端·golang
埃菲尔铁塔_CV算法32 分钟前
C# WPF 基础知识学习(三)
人工智能·神经网络·学习·计算机视觉·c#·wpf
小峰编程40 分钟前
Python数据类型进阶——详解
linux·运维·服务器·开发语言·python·pycharm·swift
m0_4669238042 分钟前
【java】字符串存储的内存原理
java·开发语言
Rverdoser1 小时前
conda创建Python虚拟环境的原理
开发语言·python·conda
我没想到原来他们都是一堆坏人1 小时前
idea中lombok插件的安装与使用
java·开发语言
论迹2 小时前
【数据结构】-- LinkedList与链表(2)
java·开发语言·数据结构·链表