基本クラスライブラリ(英: Base Class Library、通称BCL)は共通言語基盤 (CLI) における標準ライブラリである。共通言語仕様 (CLS) を満たす全てのCLI言語から利用可能となっている。
ボーランドとマイクロソフトが1999年6月8日に結んだ特許契約の成果物で、Visual Component Library (VCL) から派生したライブラリとなっている。また、一部のコンポーネント[要説明]についてはバグまでもが完全移植されている。なお、これらのバグについては互換性維持のために修正されず現在も残されており、新たなコンポーネントの追加でその問題に対処している。
CLIは多数の共通機能をカプセル化するためにBCLを含んでおり、それはプログラマの仕事をより簡単にする。 ネットワークやセキュリティといった、C/C++を含む他のほとんどの言語の基礎ライブラリよりもずっと大きな領域をサポートしており、Javaクラスライブラリと比肩しうる。 CLIの最初の実装である.NET Frameworkは、BCLの起源である。BCLにおけるほとんどの機能はMonoや.NET Coreにも移植されている。BCLはときどきFramework Class Library (FCL) として間違って言及されることがあるが、これは、実際はマイクロソフト固有の名前空間を含むスーパーセットである。
BCLは.NET Frameworkのそれぞれのバージョンで更新・機能追加されている。
いくつかの名前空間 (namespace) は、マイクロソフトによって公式にBCLの一部だとみなされているものもあれば、そうでないものもあるかもしれない。しかし、マイクロソフトによるCLIの実装である.NET Frameworkによって提供されるライブラリの一部としては、すべてが含まれている。
ECMA 335 6th EditionおよびISO/IEC 23271:2012 standardsとして標準化された名前空間について記述する[1][2]。
String
)、日時型 (DateTime
)、論理値型 (Boolean
) などのクラスと構造体、コンソール (Console
)、数学関数と数学定数 (Math
)、属性、例外および配列など、各種の基本クラスやインターフェイス、環境をサポートしている。ArrayList
)、キュー (Queue
)、スタック (Stack
)、ハッシュ (Hashtable
)、連想配列 (実装としてはHashtable
, DictionaryBase
, SortedList
) などである。Generic
) を含んでいる[3]。これらの名前空間はECMAあるいはISO standardとして標準化されておらず、マイクロソフトの実装特有のものである。しかしながら、これらの実装を強制しなくても、これらのうち完全あるいは一部は他のCLI実装に実装されている。