vlambda博客
学习文章列表

C#官方文档阅读笔记--C#语言和.NET简介

     C#编程语言虽然不是我学会的第一门编程语言,但却是我开启游戏开发之路的第一门编程语言。学习编程就像武侠片中练习武功一样,一日练一日功,一日不练百日空,三天不练门外汉,四天不练瞪眼看。所以最近萌生了一个想法:重新阅读一遍C#语言官方文档,温故而知新,用来巩固一下自己的C#知识!

C#语言

C#(读作“See Sharp”)是一种高级编程语言,不仅面向对象,而且类型安全。C#源于C语言系列,C、C++、Java和JavaScript语言的程序员可以很快的上手使用C#语言。本次阅读的C#官方文档已经更新到了C# 8及更高版本中的该语言的特性。C#是面向对象的、面向组件的编程语言。

C#特色功能:

1.    C#语言中的垃圾回收功能会自动回收无法访问的未使用对象所占用的内存;

2.    异常处理功能提供了一种结构化且可扩展的方法来进行错误检测和恢复;

3.    Lambda表达式支持函数编程技术;

4.    查询语法创建了一个公共模式,用于处理来自任何源的数据;

5.    异步操作语言支持提供用于构建分布式系统的语法;

6.    模式匹配提供语法,可轻松将数据从新式分布式系统中的算法分离出来;

7.    C#采用同一的类型系统,所有的C#类型(包括int和double等基本元素类型)均继承自一个根object类型。所有类型共用一组通用运算。

8.    C#支持用户定义的引用类型和值类型。C#允许动态分配轻型结构的对象和内嵌存储。

.NET平台体系结构

      C#在.NET上运行,而.NET是名为公共语言运行时(CLR)的虚拟执行系统和一组统一类库。CLR是Microsoft对公共语言基础结构(CLI)国际标准的商业实现。CLI是创建执行和开发环境的基础,语言和库都可以在其中无缝协同工作。

用C#编写的源代码会被编译成符合CLI规范的中间语言(IL)。IL代码和资源(如位图和字符串)存储在程序集中,扩展名通常为.dll。程序集包含了一个介绍程序集的类型、版本和区域性的清单。

      执行C#程序时,程序集将加载到CLR。CLR会直接执行实时(JIT)编译,将IL代码转换成本机指令。CLR可提供其他与自动垃圾、异常处理和资源管理的服务。CLR执行的代码有时称为“托管代码“(而不是”非托管代码”),被编译成面向特定系统的本机语言。

      语言互操作性是.NET的一项重要功能。C#编译生成的IL代码符合公共类型规范(CTS)。通过C#生成的IL代码可以与通过.NET版本的F#、VisualBasic、C++或其他20多种与CTS兼容的任何语言所生成的代码交互。一个程序集可能包含多个用不同.NET语言编写的模块,且类型可以相互引用,就像用同一种语言编写的一样。


小强同学的问号:

关于C#和.NET的关系,面试可能会被问到,你能理解清楚嘛?