什么是.NET 、 .NET Framwork 、 .NET Core?
知识点总结:
- 跨语言:只要是面向.NET平台的语言,用其中一种语言编写的类型可以无缝地应用到另一个语言编写的应用程序中的“互操作性”!
- 跨平台:一次编译,不许修改!即代码运行不依赖于操作系统和硬件环境!
- CLS:Common Language Specification,公共语言规范!.NET通过找到各个可在.NET平台上运行的语言的通用规则进行定义,形成公共语言规范,开发者只要遵守CLS,那么代码即可被.NET平台上支持
- CTS:Common Type System,公共类型系统,.NET中一个语言代码遵循的开发体系,CLS只是其中的一个小弟,由此可定义int、string、Class(类)和Struct(结构)等语法类别,使其能保持跨语言和跨平台性等
- 内存:应用程序运行时将资源隔离开,这个资源就是内存。在.NET中,内存分为堆栈和堆
- 堆栈和堆的区别:两个主要的区别是地址范围的区别,堆栈在内存中的存储定义更加紧密,提高内存密度,使其CPU分页和缓存系统表现得更好,故而访问堆栈比访问堆更快点
- 值类型存储在栈上:不同的类型拥有不同的内存分配行为, 类型主要分为值类型和引用类型,类似于固定内存大小的值类型则存储在栈中,若是可以引用到任意类型的引用类型,其会产生不确定的内存碎片的动态类型则存储在堆中
- 选Class还是Struct:Struct存储在栈上,即用即毁,适合单纯的传递一个类型的使用! 而Class用完之后还会在托管堆中存有对象,所以适合用于封装继承多态的行为使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通