共通言語ランタイムの概要

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

コンパイラおよびツールがランタイムの機能を公開このマネージ実行環境からその利点コードを記述します。 コードをランタイムに対応する言語コンパイラで開発するマネージ コードと呼びます その利点機能から言語間の統合、言語間の例外処理、セキュリティを強化するため、バージョン管理および展開サポート、コンポーネントの対話をデバッグとプロファイリング サービスの簡単なモデルなどです。

言語コンパイラは、ランタイムはマネージ コードへのサービスを提供を有効にするには、型、メンバ、およびコード内の参照の記述するメタデータを生成する必要があります。 メタデータに格納されたコード。 すべて読み込めません共通言語ランタイム ポータブル実行可能 (PE) ファイルにメタデータが含まれます。 ランタイム メタデータを使用して検索しクラスの読み込み、メモリ内のインスタンスのレイアウト、メソッドの呼び出しを解決、ネイティブ コードを生成、セキュリティと設定実行時コンテキストの境界。

ランタイムが自動的にオブジェクトのレイアウトを処理し、オブジェクト、それらが使用されなくに解放への参照を管理します。 有効期間はこの方法で管理オブジェクトをマネージ データと呼びます。 ガベージ コレクションは、一般的なプログラミング エラーだけでなくメモリ リークになくなります。 コードが管理、いる場合、.NET Framework アプリケーションでマネージ データ、アンマネージ データ、またはマネージとアンマネージの両方のデータを使用できます。 言語コンパイラ プリミティブ型などの独自の種類を指定するためする場合がありますられない知る (またはを知っておく必要があります)、データが管理されているかどうか。

共通言語ランタイム簡単をデザイン コンポーネントおよび言語間で持つオブジェクトを操作するアプリケーション。 異なる言語で記述されたオブジェクトは、互いとの通信その動作は緊密に統合します。 たとえば、クラスを定義して使用できます別の言語を元のクラスからクラスを派生または、元のクラス、メソッドを呼び出します。 また、クラスのインスタンスを渡すを別の言語で記述されたクラスのメソッドにこともできます。 この言語間統合できる言語コンパイラおよびツールのランタイムを対象に使用、ランタイムによって定義を共通の型システムのためありで新しい型を定義するなく作成を使用して、保存、およびタイプへのバインドのランタイムの規則に従うこと。

そのメタデータの一環としてすべてのマネージ コンポーネント コンポーネントとそれらがビルドされたリソースに関する情報を実行します。 ランタイムはこの情報を使用して、コンポーネントまたはアプリケーションが必要なすべての指定したバージョン、コードのいくつか unmet の依存関係のための改行を少なくするようにします。 登録情報と状態データはされることは困難ですの確立し、維持にレジストリに格納できなくします。 代わりにについての情報の種類を定義する (およびその依存関係) が格納のコードでメタデータ、はるかに小さい複雑なコンポーネントのレプリケーションおよび削除の作業を行うと。

言語コンパイラとツールはや開発者にとってわかりを示したものがな方法でのランタイムの機能を公開します。 つまり、ランタイムの一部の機能が別のより 1 つの環境でより顕著です。 ランタイムが発生する方法は何も実行する言語コンパイラやツールによって異なります。 たとえば、Visual Basic 開発者場合は、お気付き、共通言語ランタイムで、Visual Basic 言語にする前により多くのオブジェクト指向機能します。 以下に、ランタイムのいくつかの利点。

  • パフォーマンスも強化されます。

  • コンポーネントを簡単に使用する機能は、他の言語で開発します。

  • クラス ライブラリによって提供される拡張の種類。

  • 継承、インターフェイス、およびオブジェクト指向プログラミング、オーバーロードなどの新しい言語機能 ャ泣 ' スレッド、スケーラブルなアプリケーションの作成を許可する明示的なフリー スレッドのサポート 構造化例外処理およびカスタム属性のサポート。

Microsoft ® Visual C++ ® .NET を使用している場合は、Visual C++ を使用、強力な機能と多様性データ型を十分に理解しているへのアクセスだけでなく、マネージ実行環境の利点を提供するマネージ コードを記述できます。 他のランタイム機能が含まれます。

  • 言語間の統合、特に言語間の継承。

  • ガベージ コレクション、参照カウントが不要なようにオブジェクトの有効期間を管理します。

  • オブジェクトをインターフェイス定義言語 (IDL) に不要なを使用してを作成する自己記述型。

  • 1 回のコンパイルし、CPU と、ランタイムをサポートするオペレーティング システムで実行する機能。

コード記述できます管理を次の利点を提供する C# 言語を使用します。

  • オブジェクト指向設計を完了します。

  • 非常に強力なタイプ セーフ。

  • Visual Basic の簡潔さと C++ の電源の良いブレンド。

  • ガベージ コレクションです。

  • 構文とキーワード C と C++ ようです。

  • 増加タイプ セーフとセキュリティに デリゲート関数ではなく ポインタの使用します。 関数ポインタは、の安全でない Visual C# キーワードと の使用して使用可能なと安全でない、アンマネージ コードとデータの C# コンパイラ (Csc.exe) の オプションです。

参照

概念

マネージ実行プロセス

その他の技術情報

.NET Framework の概要