17

JavaコードがJVMによって実行されるバイトコードにコンパイルされていることを私は知っています。

C#の場合はどうなりますか?.exeC#で記述されたアプリケーションには、ネイティブのマシン命令であることを示唆する拡張子が付いていることに気づきました。しかし、それは本当にそうですか?

4

6 に答える 6

29

いいえ。

Javaと同様に、C#は中間言語(MSILまたはCILと呼ばれる)にコンパイルされます。

Javaとは異なり、ILはEXEファイルに保存されます。このファイルには、ユーザーに.Netのインストールを求めるダイアログボックスを表示するのに十分な実際のEXEコードが含まれています。

于 2012-09-25T13:01:10.103 に答える
6

C#のコンパイルは次の2つのステップで行われます。

1. Conversion from C# to CIL by the C# compiler

2. Conversion from CIL to instructions that the processor can execute.

コンポーネント(ジャストインタイム)は、CILからマシンコードへの実行時にこのコンパイルを実行します

于 2012-09-25T13:12:00.427 に答える
6

その.exeがあなたに伝えることになっているのは、ファイルが実行可能であるということです。C#はJavaと同じようにバイトコードにコンパイルされますが、.NETはこれをCLR実行可能ファイルにラップします。

CLR実行可能ファイルの詳細については、こちらをご覧くださいhttp://etutorials.org/Programming/.NET+Framework+Essentials/Chapter+2.+The+Common+Language+Runtime/2.2+CLR+Executables/

于 2012-09-25T13:12:10.867 に答える
4

c#コードはMSILにコンパイルされます。Javaバイトコードが好きです。msilは、実行時にマシンの機能に変換されます。

于 2012-09-25T13:02:56.333 に答える
3

C#コードはMSILにコンパイルされ、MSILは.NETCLRによって処理されます

于 2012-09-25T13:05:09.187 に答える
0

C#をスタンドアロンのバイナリ実行可能ファイルにコンパイルできるプロジェクトもあります:CoreRT

于 2020-02-13T08:18:32.933 に答える