C# 中有哪些重要的命名空间?请简要描述每个命名空间。
.NET 包含许多命名空间,如果包含第三方库,还会包含更多。但是,有一些命名空间会反复使用。以下 20 个命名空间可以帮助您解决 80% 常见的、反复出现的编程问题。
System
包含最基本的类型。这些类型包括常用的类、结构体、枚举、事件、接口等。
System.Text
包含表示 ASCII 和 Unicode 字符编码的类。用于在字符块和字节块之间相互转换的类。
System.Text.RegularExpressions
提供正则表达式功能。
System.Linq
提供支持使用语言集成查询 (LINQ) 进行查询的类和接口。
System.XML.Linq
包含用于 LINQ to XML 的类。 LINQ to XML 是一个内存中的 XML 编程接口,可让您高效轻松地修改 XML 文档。
System.XML
提供对 XML 处理的支持。
System.XML.Serialization
包含用于将对象序列化为 XML 格式文档或流的类。
System.Text.Json
提供高性能、低分配且符合标准的功能来处理 JavaScript 对象表示法 (JSON),包括将对象序列化为 JSON 文本以及将 JSON 文本反序列化为对象,并内置 UTF-8 支持。
System.Diagnostics
提供允许您与系统进程、事件日志和性能计数器交互的类。
System.Threading
提供支持多线程编程的类和接口。除了用于同步线程活动和数据访问的类(Mutex、Monitor、Interlocked、AutoResetEvent 等),此命名空间包含一个 ThreadPool 类,允许您使用系统提供的线程池,以及一个 Timer 类,用于在线程池线程上执行回调方法。
System.Threading.Tasks
提供简化并发和异步代码编写工作的类型。主要类型有Task,表示可以等待和取消的异步操作,以及Task,表示可以返回值的任务。 TaskFactory 类提供用于创建和启动任务的静态方法,而 TaskScheduler 类提供默认的线程调度基础结构。
System.IO
包含允许读写文件和数据流的类型,以及提供基本文件和目录支持的类型。
System.Net
为网络上使用的许多协议提供简单的编程接口。
System.Net.Http
为现代 HTTP 应用程序提供编程接口。
System.Net.Mail
包含用于将电子邮件发送到简单邮件传输协议 (SMTP) 服务器进行投递的类。
System.Net.Sockets
为需要严格控制网络访问的开发人员提供 Windows Sockets (Winsock) 接口的托管实现。
System.Reflection
包含通过检查元数据来检索托管代码中的程序集、模块、成员、参数和其他实体信息的类型。
System.Security
提供公共语言运行时安全系统的底层结构,包括以下基类:权限。
System.Security.Cryptography
提供加密服务,包括数据的安全编码和解码,以及许多其他操作,例如散列、随机数生成和消息认证。
System.Dynamic
提供对动态编程的支持。

