.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 (継承階層構造のルート)、Byte、Char、Array、Int32、String など、すべてのアプリケーションで使用される基本データ型を表すクラスが含まれます。 これらの型の多くは、プログラミング言語で使われるプリミティブなデータ型に対応します。 .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 フォームが含まれます。
こちらもご覧ください
.NET