C#/.NET BCL:基础类库
随着 Windows 以及 .NET Framework 的成长,BCL 已近乎成为在 .NET 上的 Windows API。
当安装 .NET Framework 时,所有的基础类库都部署到全局程序集缓存(GAC)中,所以不需要在你的工程中手动引用任何的基础类库,它们会被自动引用。
部分 mscorlib.dll 包括的命名空间如下:
System:.NET Framework 类库中最基底的服务,提供应用程序域(Application Domain),数据类型,I/O 以及其他类库的基础。 System.Collections:提供非泛型数据结构以及集合对象的支持,其中 System.Collections.Generic 中包括所有的泛型数据结构。 System.Data:ADO.NET 的组成类库,为数据访问功能的核心功能。 System.IO:提供数据流与文件读写的支持。 System.Net:.NET 中的网络功能。 System.Reflection:反射。 System.Diagnostics:.NET 中提供系统诊断、除错、追踪与运行外部进程的能力。 System.Text:对文字、编码以及正则表达式的支持。 System.Threading:线程控制。 System.Web:ASP.NET 的组成类库,令工程可以和 IIS 服务器交互,XML Web Service 开发的基本支持也由本类别提供。ASP.NET Core 中消失(如果你不打算用 IIS 做服务器的容器,则你不需要这个类库)。 System.Xml:XML 解析器。 System.Linq,System.Xml.Linq:LINQ 的核心类库,System.Linq 是 LINQ to Object,而 System.Xml.Linq 则是 LINQ to XML。
然而在 C:/Program Files(x86)/Reference Assemblies/Microsoft/Framework/.NETFramework/ v4.0/ 目录下,我们还有一个 System.dll,这个参考是每次新建工程时 VS 自动引用的若干参考之一。
这个程序集中也有一个 System 命名空间,它的内容和 mscorlib.dll 中的不同。
可以看到,System 这个命名空间存在于不止一个程序集中。这意味着不同的程序集可以共享一个命名空间。
在 System.dll 中,System 类型拥有 Uri 这个成员,mscorlib.dll 中的 System 类型则拥有 int 这个成员(基元类型)。
所以我们可以做个试验,如果我们将工程中对 System 的引用去掉,那么我们就不能定义一个 Uri 类型的对象。
但我们仍然可以使用 int 类型,因为它虽然也在 System 这个类型里面,但位于 mscorlib.dll 中。
当你去掉对 System 的引用时,你仅仅去掉了 System.dll 和里面的功能,但你没有去掉 mscorlib.dll 中 System 类型的功能。
BCL 是属于整个 .NET 框架的,并非某种语言的一个基础类库。
例如,C# 中 string 类型的所有功能和定义来源于 mscorlib.dll 中的 System.String,而 VB 中 string 类型的功能和定义也来源于相同的地方,所以 String 和 string 两个关键字没有任何区别,类似的还有 Int32 和 int。
基础类库中定义的类型称为基元(primitive)类型,由 .NET 框架所有的语言共享。
22356.html
cWeb数据结构相关文章
- C# -XML用法(XmlDocument )
- C#Expression合集
- c#异步编程-Task(二)
- c# 多线程并发-金三银四面试:C#.NET面试题高级篇2-多线程
- c#面试题抽象类和接口的区别-金三银四面试:C#程序员经常遇到的30道基础面试题,想你所想
- 【愚公系列】2023年01月 .NET/C#知识点-LINQ和lambda实现左、右、内链接
- 【Unity3D】Unity 脚本 ② ( Visual Studio 2019 中的 Unity 编译环境配置 | Unity 编辑器关联外部 C# 脚本编辑器 Visual Studio )
- C#/.NET CTS和CLS:公共类型系统和公共语言规范
- C如何关闭MySQL数据库的链接(c# 关闭mysql链接)
- C连接Oracle快速读取表中数据(c# oracle 读表)
- NET环境下MySQL数据库的使用实践(.net支持mysql吗)
- C#操作注册表的方法
- c#.net生成图片验证码的代码
- C#+MO实现一个道路编辑软件(刚开始)
- asp.net(c#)ubb处理类
- asp.net(C#)动态添加非ASP的标准html控件(如添加Script标签)
- asp.net(c#)获取内容第一张图片地址的函数
- asp.net(c#)实现从sqlserver存取二进制图片的代码
- 深入C#中使用SqlDbType.Xml类型参数的使用详解
- 解决C#截取当前程序窗口指定位置截图的实现方法
- 解析C#自定义控件的制作与使用实例的详解
- ASP.NET(C#)读取EXCEL另加解决日期问题的方法分享
- des加密解密源码C#key值问题分析
- C#中属性和成员变量的区别说明
- c#批量上传图片到服务器示例分享
- c#线程Thread示例
- C#模拟Http与Https请求框架类实例
- C#实现农历日历的方法
- C#事务处理(ExecuteTransaction)实例解析
- C#.NET采用HTML模板发送电子邮件完整实例