c# 高级编程 (第13页)【以System开头的命名空间】【以Microsoft开头的命名空间】【 公共语言运行库CLR】【即时编译器RyuJIT】

287 阅读2分钟

.NET类在System开头的命名空间:

命名空间说明
System.Collections集合的根命名空间。子命名空间也包含集合,如System.Collections.Concurrent, System.Collections.Generic
System.Data访问数据库的命名空间,System.Data.SqlClient子命名空间包含访问SQL Server的类
System.Diagnostics诊断信息,如事件记录和跟踪 (在System.Diagnostics.Tracing)
System.Globalization全球化和本地化应用程序
System.IO文件IO, 访问文件和目录,包括reader, writer, stream
System.NET核心网络,如访问DNS服务器,用System.Net.Sockets创建套接字
System.Threading线程和任务,Task在System.Threading.Tasks中定义

一些新的.NET类在Microsoft 开头的命名空间,举个栗子:

命名空间说明
Microsoft.EntityFrameworkCore用于Entity Framework Core
Microsoft.Extensions.DependencyInjection用于依赖注入

公共语言运行库(Common Language Runtime)

  • UWP利用Native.NET,通过AOT Complier把IL编译成本地代码。它不是使用CLR来完成这件事的。
  • 使用.NET Framework的应用程序,通过CLR把IL编译成本地代码
  • 使用.NET Core的应用程序,通过CoreCLR把IL编译成本地代码

CLR:

  • 负责在运行时将IL编译为特定于平台的本地代码
  • 它包含一个类型系统,这个类型系统还带有
    • 一个类型加载器。类型加载器负责从程序集中加载类型
    • 安全基础设施,验证是否允许使用某些类型系统结构,如继承
  • 垃圾回收,垃圾回收器从托管堆中清除不再引用的内存
  • 线程处理, 在c#中创建托管线程的不一定来自底层操作系统。线程的虚拟化和管理由CLR负责

IL是在.NET程序集中的一种中间语言。

RyuJIT, 新JIT编译器。

  • 比之前的版本
  • 用VS调试时更好地支持Edit&Continue功能(调试时编辑代码,可继续调试会话,而不需要停止并重启进程)。