C#/.NET BCL:基础类库
发布时间:2020-12-15 17:29:44 所属栏目:百科 来源:网络整理
导读:基础类库(BCL)是微软所提出的一组标准库,可提供给 .NET Framework 所有语言使用。 随着 Windows 以及 .NET Framework 的成长,BCL 已近乎成为在 .NET 上的 Windows API。 当安装 .NET Framework 时,所有的基础类库都部署到全局程序集缓存(GAC)中,所以
基础类库(BCL)是微软所提出的一组标准库,可提供给 .NET Framework 所有语言使用。 随着 Windows 以及 .NET Framework 的成长,BCL 已近乎成为在 .NET 上的 Windows API。 当安装 .NET Framework 时,所有的基础类库都部署到全局程序集缓存(GAC)中,所以不需要在你的工程中手动引用任何的基础类库,它们会被自动引用。 部分 mscorlib.dll 包括的命名空间如下:
然而在 C:Program Files(x86)Reference AssembliesMicrosoftFramework.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 框架所有的语言共享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |