.NET クラス ライブラリの概要

.NET API には、開発プロセスを高速化および最適化し、システム機能へのアクセスを提供する、クラス、インターフェイス、デリゲート、および値の型が含まれます。 言語間での相互運用性を確保するために、.NET のほとんどの型は CLS (共通言語仕様) に準拠しています。そのため、コンパイラが CLS に準拠しているすべてのプログラミング言語でこれらの型を使用できます。

.NET の型は、.NET アプリケーション、.NET コンポーネント、およびコントロールを構築するときの基礎となります。 .NET には、次の機能を実行する型が用意されています。

  • 基本データ型と例外を表す。
  • データ構造をカプセル化する。
  • 入出力を実行する。
  • 読み込まれた型についての情報にアクセスする。
  • .NET セキュリティ チェックを呼び出す。
  • データ アクセス、豊富なクライアント側 GUI、およびサーバー制御式のクライアント側 GUI を提供する。

.NET には、豊富なインターフェイスのセットに加えて、抽象クラスと具象 (抽象ではない) クラスが用意されています。 具象クラスはそのまま使用できますが、多くの場合は、それらから独自のクラスを派生させます。 インターフェイスの機能を使用するには、インターフェイスを実装するクラスを作成するか、またはインターフェイスを実装する .NET クラスの 1 つからクラスを派生させます。

名前付け規則

.NET の型では、階層構造を伴うドット構文の名前付けスキームが使用されます。 この方法では、関連する型が名前空間にグループ化されるため、検索と参照を簡単に行うことができます。 フルネームのうち右端のドットまでの最初の部分は、名前空間の名前です。 名前の最後の部分は型名です。 たとえば、System.Collections.Generic.List<T>System.Collections.Generic 名前空間に属する List<T> 型を表します。 System.Collections.Generic の型は、ジェネリック コレクションの操作で使用できます。

この名前付け方法によって、.NET を拡張するライブラリ開発者は、型の階層構造のグループを作成して一貫性のあるわかりやすい名前を付けることが容易になります。 また、型の完全名 (つまり名前空間と型名) によって型を明確に特定できるため、型名の競合を防ぐことができます。 ライブラリ開発者は、次の規則に従って名前空間の名前を付けてください。

CompanyName.TechnologyName

たとえば、名前空間 Microsoft.Word はこのガイドラインに従っています。

名前付けパターンを使用して関連する型を名前空間にグループ化する方法は、クラス ライブラリを構築および文書化するのに便利です。 ただし、この名前付け方法は、参照可能範囲、メンバー アクセス、継承、セキュリティ、バインディングには影響しません。 名前空間は複数のアセンブリにまたがって分割でき、また 1 つのアセンブリに複数の名前空間からの型を含めることができます。 アセンブリは、共通言語ランタイムにおけるバージョン管理、配置、セキュリティ、読み込み、および参照可能範囲のための構造を提供します。

名前空間と型の名前の詳細については、「共通型システム」(共通型システム) を参照してください。

System 名前空間

System 名前空間は、.NET における基本的な型のルート名前空間です。 この名前空間には、Object (継承階層構造のルート)、ByteCharArrayInt32String など、すべてのアプリケーションで使用される基本データ型を表すクラスが含まれます。 これらの型の多くは、プログラミング言語で使われるプリミティブなデータ型に対応します。 .NET の型を使用してコードを記述するときには、.NET の基本データ型が使用されるところに、プログラミング言語側の対応するキーワードを使用できます。

次の表では、.NET に用意されているそれぞれの基本型の一覧を示し、各型について簡単に説明し、Visual Basic、C#、C++、F# での対応する型を示します。

カテゴリ クラス名 説明 Visual Basic のデータ型 C# のデータ型 C++/CLI のデータ型 F# のデータ型
整数型 Byte 8 ビット符号なし整数。 Byte byte unsigned char byte
SByte 8 ビット符号付き整数。

非 CLS 準拠
SByte sbyte char または signed char sbyte
Int16 16 ビット符号付き整数。 Short short short int16
Int32 32 ビット符号付き整数。 Integer int int または long int
Int64 64 ビット符号付き整数。 Long long __int64 int64
UInt16 16 ビット符号なし整数。

非 CLS 準拠
UShort ushort unsigned short uint16
UInt32 32 ビット符号なし整数

非 CLS 準拠
UInteger uint unsigned int または unsigned long uint32
UInt64 64 ビット符号なし整数。

非 CLS 準拠
ULong ulong unsigned __int64 uint64
浮動小数点 Half 半精度 (16 ビット) 浮動小数点数
Single 単精度 (32 ビット) 浮動小数点数 Single float float float32 または single
Double 倍精度 (64 ビット) 浮動小数点数 Double double double float または double
論理 Boolean ブール値 (true または false) Boolean bool bool bool
その他 Char Unicode (16 ビット) 文字 Char char wchar_t char
Decimal 10 進数 (128 ビット) の値です。 Decimal decimal Decimal decimal
IntPtr 基になるプラットフォームによってサイズが決まる符号付き整数 (32 ビットのプラットフォームでは 32 ビット値、64 ビットのプラットフォームでは 64 ビット値) nint unativeint
UIntPtr 基になるプラットフォームによってサイズが決まる符号なし整数 (32 ビットのプラットフォームでは 32 ビット値、64 ビットのプラットフォームでは 64 ビット値)

非 CLS 準拠
nuint unativeint
Object オブジェクト階層構造のルート Object object Object^ obj
String Unicode 文字の不変固定長文字列 String string String^ string

基本データ型に加えて、System 名前空間には、例外を処理するクラスから、核となるランタイム概念 (アプリケーション ドメインやガベージ コレクターなど) を扱うクラスまで、100 以上のクラスが含まれます。 System 名前空間には、2 次レベルの名前空間も数多く含まれています。

名前空間の詳細については、「.NET API ブラウザー」を使用して .NET クラス ライブラリを参照してください。 API リファレンス ドキュメントでは、各名前空間、その種類、および各メンバーに関するドキュメントが提供されます。

データ構造

.NET には、多数の .NET アプリの主力となるデータ構造体のセットが含まれています。 これらはほとんどがコレクションですが、その他の型も含まれています。

  • Array - インデックスを使用してアクセスできる、厳密に型指定されたオブジェクトの配列を表します。 その構造ごとの固定サイズがあります。
  • List<T>: インデックスを使用してアクセスできる、厳密に型指定されたオブジェクトのリストを表します。 必要に応じてサイズを自動調整します。
  • Dictionary<TKey,TValue>: キーによってインデックスが作成される値のコレクションを表します。 値は、キーを使用してアクセスできます。 必要に応じてサイズを自動調整します。
  • Uri: URI (Uniform Resource Identifier) のオブジェクト表現を可能にし、URI の一部へ簡単にアクセスできるようにします。
  • DateTime: 通常、日付や時刻として表現される瞬間を表します。

ユーティリティ API

.NET には多くの重要なタスクの機能を提供するユーティリティ API のセットが含まれています。

  • HttpClient: URI で識別されるリソースに HTTP 要求を送信し、そのリソースから HTTP 応答を受信するための基底クラスを提供する API です。
  • XDocument: LINQ を使用して XML ドキュメントのロードと照会をするための API です。
  • StreamReader: ファイルを読み取るための API です。
  • StreamWriter: ファイルを書き込むための API です。

アプリ モデル API

.NET で使用できるアプリ モデルは多数あります。次に例を示します。

  • ASP.NET - Web サイトとサービスを構築するための Web フレームワーク。 Windows、Linux、および macOS でサポートされます (ASP.NET のバージョンによって異なります)。
  • .NET MAUI - C# を使って Windows、macOS、iOS、Android で実行するネイティブ アプリを構築するためのアプリ プラットフォーム。
  • Windows Desktop - Windows Presentation Foundation (WPF) と Windows フォームが含まれます。

こちらもご覧ください