ホームページ  >  記事  >  バックエンド開発  >  C# 高度なプログラミング (1) - .NET アーキテクチャ

C# 高度なプログラミング (1) - .NET アーキテクチャ

黄舟
黄舟オリジナル
2017-03-20 11:15:261233ブラウズ

1.1 C#.NETとの関係

C#は単独で使用することはできず、.NET Frameworkと併用する必要があります。

(1) C# のアーキテクチャと方法論は、.NET の基本的な方法論を反映しています。

(2) C# の特定の言語機能は、.NET の機能に依存するか、.NET の基本クラスに依存することがほとんどです。

.NETでサポートされている一部の機能はC#ではサポートされていません。 C# 言語でサポートされているが、.NET ではサポートされていない機能は他にもあります。

1.2 共通言語ランタイム(CLR)

1.2.1 プラットフォームの独立性

.NET Frameworkの中核は、共通言語ランタイム(CLR)または.NETランタイムライブラリと呼ばれるランタイム環境です。

CLRの制御下で実行されるコードは通常、マネージドコードと呼ばれます。

.NET がコードをコンパイルする方法:

ステージ 1: ソース コードを Microsoft 中間言語 (IL) にコンパイルします。

※ILはJAVAのバイトコードに似ています。

ステージ 2: CLR は IL をプラットフォーム固有のコードにコンパイルします。

1.2.2 パフォーマンスの向上

アプリケーションの実行中に JIT (ジャストインタイム コンパイル) がコンパイルされるため、JIL はプログラムが実行されているプロセッサの種類を正確に認識し、そのプロセッサをターゲットにすることができます。パフォーマンスを向上させるために。

1.2.3 言語の相互運用性

Visual Basic 2013、Visual C++ 2013、Visual F#、COM および COM+、Windows ランタイム ライブラリ。言1.3 中間言語 3 中間言語の主な機能:

  • IL は通常、ファジー

    データ型
    に対する操作を許可しません。ただし、強制型セキュリティによりパフォーマンスが低下しているように見えますが、ほとんどの場合、タイプ セーフに依存する .NET によって提供されるサービスからより多くの利点が得られます。これらのサービスには、次のものが含まれます。中間言語はスタックに格納されます (参照型のフィールドとして宣言された場合、それらはヒープ上にインラインで格納されます)。

    • 参照型(参照型)、変数はアドレスのみを格納し、参照型のインスタンスは常に「マネージドヒープ」と呼ばれるメモリ領域に格納されます。

    • 強制タイピング

    • 言語の相互運用性の本当の意味 ある言語で書かれたクラスは、別の言語で書かれたクラスと直接通信できる必要があります。このようなツールは (CLR ではなく) (Visual Studio IDE によって) 提供されます。値型と参照型の間には大きな違いがあります。

    • -- 強力なデータ型指定の重要性について] クラスが他のクラスのインスタンスを派生または含む場合、そのクラスは他のクラスで使用されるすべてのデータ型を知る必要があります。これが言語の相互運用です。なぜセックスが重要なのか。

    • .NETでのソリューション
    • Common Type System (CTS) CTS は、中間言語で使用できる事前定義されたデータ型を定義します。すべての .NET Framework 言語は、最終的にこれらの型に基づいてコンパイルされたコードを生成できます。
      • CTS では、独自のタイプのコードを定義することもできます。

      • CTS の階層構造は、中間言語

        継承 のオブジェクト指向アプローチの単一性を反映しています。



      • 共通言語仕様 (CLS)

    CLS でコードを使用することは許容されますが、そうすることを保証することはできませんコンパイルが良好な IL コード言語の相互運用性を完全にサポートします。

    • ガベージコレクション


      • セキュリティ

      • アプリケーションドメイン


    ガベージコレクタは.NETメモで使用されますメモリ管理、特にアプリケーションの実行に必要なメモリを復元できます。 。

        マネージド ヒープで参照されていないオブジェクトを確認し、削除します。
      • 例外を使用してエラーを処理する
      • 属性を使用する

以上がC# 高度なプログラミング (1) - .NET アーキテクチャの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。