1. .NET Framework とは
いわゆる .NET Framework はプラットフォームであり、その目的はクロスオペレーティング システム プログラミングです。 Windows アプリケーション コンポーネント、Web 開発モジュールなど、多くのモジュールが含まれています。さまざまなオペレーティング システムが、それぞれの特性に応じてこれらのモジュールの一部をサポートしています。 NET Framework は、仮想マシンによって実行されるプログラミング プラットフォームであり、共通言語ランタイムに基づいており、複数の言語 (C#、VB.NET、C++ など) の開発をサポートしています。デスクトップ アプリケーション (WinForm、WPF、SilverLight、Office)、Web アプリケーション (Asp.NET、ASP.NET) を開発できる
MVC、SilverLight)、Windows サービス、およびモバイル組み込み開発。現在一般的に使用されているバージョンは、2.0、3.0、3.5、4.0 です。
2 のいくつかの概念 (1)、CLR の概念?
詳細: CLR は共通言語ランタイムであり、Java 仮想マシンと同様のランタイム環境でもあり、リソース管理 (メモリ割り当てとガベージ コレクション) を担当し、アプリケーションとアプリケーション間の必要な通信を保証します。基礎となるオペレーティング システムの分離。
(2) マネージ コードの利点は何ですか?
詳細: http://www.php.cn/
(3) 言語の相互運用性の本当の意味と現れは何ですか?
詳細: ある言語で書かれたクラスは、別の言語で書かれたクラスから継承できる必要があります クラスには、どの言語で書かれたかに関係なく、別のクラスのインスタンスを含めることができます。オブジェクトは、Other を直接呼び出すことができる必要があります他の言語で書かれたオブジェクトのメソッド
オブジェクト (またはオブジェクト参照) はメソッド間で受け渡せる必要があります
異なる言語間でメソッドを呼び出す場合、これらのメソッドの呼び出しはデバッガーでデバッグできる必要があります。さまざまな言語で書かれたデバッグ
コード
(4) .NET では、プログラムのコンパイル プロセスとは何ですか?
詳細: http://www.php.cn/
(5) 中間言語の主な機能は何ですか?
さまざまなコンパイラでリアルタイムにコンパイルし、さまざまな構造で実行できるため、言語の論争がなくなります。中級言語または高級言語。
(6) 動的言語と静的言語、強く型付けされた定義言語と弱く型付けされた定義言語の概念的な違いは何ですか?
動的型付き言語: 実行時にデータ型チェックを行う言語、
静的型付き言語: コンパイル中にデータ型がチェックされます。 厳密に型指定された定義言語: データ型定義を強制する言語。
弱い型指定言語: データ型を無視できる言語。これは、変数にさまざまなデータ型の値を割り当てることができる、厳密に型指定された定義言語の逆です。
(7) コンパイル型とインタープリタ型 (ブログパークを参照)
まずコンパイル型を見てみましょう。実際には、アセンブリ言語と同じで、ソースを変換するための翻訳を担当するプログラムもあります。 code とgenerate 対応する実行可能コード。より専門的に言えば、このプロセスをコンパイルと呼び、コンパイルを担当するプログラムを当然コンパイラと呼びます。作成したプログラム コードがソース ファイルに含まれている場合、通常はコンパイル直後に実行可能ファイルが生成され、それを直接実行できます。しかし、より複雑なプロジェクトの場合は、管理を容易にするために、通常、コードをさまざまなソース ファイルに分散し、異なるモジュールとして編成します。このとき、各ファイルをコンパイルすると、前述の実行ファイルではなく、オブジェクトファイル(Object file)が生成されます。一般に、ソース ファイルのコンパイルはターゲット ファイルに対応します。これらのターゲット ファイルの内容は基本的に実行可能コードですが、プロジェクト全体にすぎないため、
部分なので、まだ直接実行できません。すべてのソース ファイルがコンパイルされたら、最終的にこれらの半完成のターゲット ファイルを実行可能ファイルに「パッケージ化」できます。このプロセスには実行可能コードが含まれていると思われるため、この作業は別のプログラムによって完了します。 , そのため、リンクとも呼ばれ、リンクを担当するプログラムは...リンカーと呼ばれます。リンカーは、ターゲット ファイルをリンクするだけでなく、アイコン ファイル、サウンド ファイルなどのさまざまなリソースも持つことができ、ターゲット ファイル間の冗長な重複コードを削除する役割も果たします。リンクが完了すると、通常は必要な実行可能ファイルを取得できます。
説明タイプをもう一度見てください。 「編纂」と「通訳」はどちらも「翻訳」を意味しますが、違いは翻訳のタイミングにあります。例: 外国の本を読む予定で、外国語がわからない場合は、翻訳者を見つけて、最初から最後まで本全体を翻訳するのに十分な時間を与えてから、その本を母国語に翻訳することができます。または、翻訳者に読みを手伝ってもらい、一文ずつ翻訳してもらうこともできます。特定の章に戻りたい場合は、翻訳してもらいます。またか。 2 つの方法のうち、前者は先ほど述べたコンパイル型に相当し、すべてのコードを一度に機械語に変換してから実行可能ファイルに書き込みます。後者は、説明したインタープリタ型に相当します。プログラムが実行される前には、ソース プログラムのみが存在し、実行可能プログラムは存在しません。プログラムがソース プログラムの特定の命令を実行するたびに、ソース コードをバイナリ コードに変換して実行するためのインタプリタと呼ばれるシェル プログラムが存在します。つまり、常に解釈、実行、解釈、実行...ということを意味します。 したがって、解釈されたプログラムは、解釈されたプログラムと切り離せないものになります。たとえば、初期の BASIC は古典的なインタープリター言語であり、BASIC プログラムを実行するには、BASIC 環境に入る必要があり、その後、プログラムのソース ファイルをロードして実行できます。インタプリタ型プログラムでは、プログラムは必ずソースコードの形で現れるため、対応するインタプリタがあれば移植はほとんど問題ありません。コンパイルされたプログラムのソース コードを移植することもできますが、前提条件として、異なるシステム用に個別にコンパイルする必要があります。
複雑なプロジェクトの場合、実際には非常に時間がかかり、ソース コードの一部の詳細をまだ変更する必要がある可能性が非常に高くなります。さらに、インタープリターされたプログラムはコンパイル手順を保存し、編集後すぐに実行できるため、コンパイル...リンク...コンパイルの長いプロセスを辛抱強く待つ必要がありません。リンクプロセスに小さな変更を加えるたびに。ただし、すべてに長所と短所があります。解釈されたプログラムは実行プロセスにコンパイル処理を組み込むため、速度が数百倍も遅くなるのは当然のことです。
コンパイル型とインタープリター型、どちらにも長所と短所があります。前者は、同じ条件下でプログラムの実行速度が速く、システム要件が低いため、C/C++、Pascal/Object Pascal (Delphi) などのオペレーティング システム、大規模アプリケーション、データベース システムなどを開発するときに使用されます。 、VB およびその他の基本プログラムはすべてコンパイル済み言語と見なされますが、一部の Web スクリプト、サーバー スクリプト、および高速要件がなく、異なるシステム プラットフォーム間の互換性に関する特定の要件があるプログラムなどは、通常、 Java、JavaScript、VBScript、Perl、Python などのインタープリタ言語。
しかし、コンパイル言語とインタプリタ言語にはそれぞれ長所と短所があり、互いに対立するため、多くの新興言語はその 2 つを妥協する傾向があります。たとえば、Java 言語はインタプリタ言語の特性に近いものです。言語では、実行前に事前にプログラムされており、プリコンパイル後、生成されたコードはマシン コードと Java ソース コードの間の中間コードとなり、実行時に JVM (Java の仮想マシン プラットフォーム) によって解釈され実行されます。 、通訳とみなすことができます)。ソース コードの高度な抽象化と移植性の特性を維持するだけでなく、ソース コードのプリコンパイルの大部分が完了しているため、「純粋に解釈された」プログラムよりもはるかに高速に実行されます。 VB6 (または以前のバージョン) や C# などの言語の場合、表面上は .exe 実行可能プログラム ファイルが生成されますが、VB6 のコンパイル後に実際に生成されるものも中間コードですが、コンパイラーはその前に段落を挿入します。外部を自動的に呼び出します。
実際のプログラム本体を解釈して実行するための内部インタープリターのコード (このインタープリターはユーザーが作成したプログラムから独立しており、システムの DLL ファイルに保存されます。VB6 でコンパイルされたすべての実行可能プログラムはこれを使用します)。 C# (およびその他の .net 言語コンパイラ) は .net ターゲット コードを生成し、実際には .net 解釈システム (JVM と同様、仮想マシン プラットフォームでもあります) によって実行されます。 もちろん、.net ターゲット コードはすでにかなり「低レベル」であり、機械語に近いため、依然としてコンパイル済み言語とみなされ、その移植性は Java が主張するほど強力ではありません。 .net は「一度エンコードすればどこでもコンパイルできる」です。つまり、設計テクノロジとハードウェアの継続的な開発により、コンパイルおよび解釈された型が
アプローチ間の境界はますます曖昧になってきています。
上記は C# の基礎知識をまとめたものです: .NET の知識 その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。