基础类库(BCL)是微软所提出的一组标准库,可提供给 .NET Framework 所有语言使用。

随着 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 框架所有的语言共享。

C#/.NET BCL:基础类库相关推荐

  1. boost 框架及基础类库的编译(FCL and BCL on Boost C++)

    一.先决条件 Ubuntu 18.0x/20.0x/22.0x + 1C/2G RAM(至少),且目标平台编译,C/C++ 程式不要尝试在其它平台上交叉编译,在那个平台编译就寻找那个平台设备进行编译, ...

  2. C#-概念-基础类库:基础类库

    ylbtech-C#-概念-基础类库:基础类库 基础类库 (BCL) 是微软所提出的一组标准库可提供.NET Framework所有语言使用. 随着 Windows 以及 .NET Framework ...

  3. 串口基础类库(WIN32)异步通信 _COM_H 源代码

    /* 串口基础类库(WIN32) ver 0.1编译器 : BC++ 5; C++ BUILDER 4, 5, 6, X; VC++ 5, 6; VC.NET; GCC;class _base_com ...

  4. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-基于接口驱动的数据层...

    系列回顾 在前面的文章中,我用了大量的篇幅对UDA及ORM的使用进行了讲解和演示,我们已经知道并熟悉的使用UDA和ORM构建简单的应用,AgileEAS.NET在应用的纵向结构上建议使用分层结构,提出 ...

  5. Java面试题系列之Java基础类库(一)

    Java程序员面试题大全系列之Java基础类库(一)                                                                           ...

  6. Sangmado 公共基础类库

    Sangmado(发音 /sɔŋmɑːdu:/ '桑麻渡')涵盖了支撑 .NET/C# 项目开发的最基础的公共类库,为团队在不断的系统开发和演进过程中发现和积累的最公共的代码可复用单元. Sangma ...

  7. .NET Core运行时和基础类库性能提升

    微软宣布改进了.NET Core运行时和基础类库的性能.虽然没有像改进ASP.NET Core的性能那样大肆宣传,但这些改进同样重要. 其中,以下10个方面的变化比较显著:集合.LINQ.压缩.加密. ...

  8. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-基础篇-通过SQL实现特殊业务...

    前面的四篇文章演示ORM的一些常规操作与配置,通过前面的文章,应用开发人员要可以使用ORM开发出简单的应用,但是,ORM也不是万能钥匙,在业务应用中,还有很多是ORM解决不了的问题,对于这些问题,我们 ...

  9. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-演示使用报表构建UI-入库业务查询模块...

    回顾与说明 前面我们把"商品字典"."商品入库"."商品库存查询"三个模块已经概括或者详细的演示完了,这些模块涉及到简单数据的增.删.修,也 ...

最新文章

  1. Eclipse tomcat Web页面调试
  2. 浅析三种特殊进程:孤儿进程,僵尸进程和守护进程.
  3. 图神经网络(一)图信号处理与图卷积神经网络(1)矩阵乘法的三种方式
  4. Android之倍数提高工作效率的 Android Studio 奇技
  5. 编译器预定义宏的查看和使用
  6. BugkuCTF-Crypto题贝斯家
  7. 利用Python中的BeautifulSoup库爬取豆瓣读书中书本信息
  8. 如何安装Ruby(Windows)
  9. Matlab保存imagesc函数没有缩放的伪彩图
  10. 单片机原理与接口技术试题
  11. js调用数科阅读器_多种方式实现JS调用后台方法进行数据交互
  12. 大话数据结构 code 第四章 04斐波那契函数_Fibonacci
  13. 【Linux系统】第6节 Linux系统压缩与解压缩文件
  14. 300元内,此耳机是首选。不亏千人好评,对的起你的耳朵。
  15. hiho 1615 矩阵游戏II [Offer收割]编程练习赛33 Problem A 贪心暴力
  16. 重新编译Spark2.4.0 Parcels包
  17. Mindmanager 安装过程中 ERROR 1320. The specified path is too long (文件路径) 等问题
  18. Java输出PPT文件(二) - 占位符数据替换
  19. python中的鸭子模型
  20. Java视频教程,java全套教程从入门到精通:13天学会Java编程!

热门文章

  1. 科研论文如何规范地“一稿多投”?
  2. ENVI二次开发应用:批量裁剪栅格数据
  3. 博客园私人定制css
  4. Python 字典中的values函数
  5. 铜箔行业竞争格局及面临的发展机遇、发展趋势、市场规模、产销量
  6. 奥美我害怕阅读的人_阅读,搜索,(不要害怕)询问
  7. 华测测绘仪X5安装问题笔记
  8. C语言define定义数组和函数指针
  9. 解决IBGP的水平分割和BGP选路原则
  10. 对JSON数据进行排序