私はMSILとマネージコードと混同していますが、それらは同じですか、それとも異なりますか?つまり、C#コードをビルドするとどうなりますか?
どちらが正しいですか
C# Code → C# compiler → Managed Code → MSIL
また
C# Code → C# compiler → MSIL
あなたの答えを裏付ける本物の参照またはリンクを提供してください。
私はMSILとマネージコードと混同していますが、それらは同じですか、それとも異なりますか?つまり、C#コードをビルドするとどうなりますか?
どちらが正しいですか
C# Code → C# compiler → Managed Code → MSIL
また
C# Code → C# compiler → MSIL
あなたの答えを裏付ける本物の参照またはリンクを提供してください。
あなたはさまざまなことを混乱させています。マネージ コードは、マネージ言語 (C#、VB.NET、F# など) で記述されたコードで、CIL (Common Intermediate Language、以前の Microsoft Intermediate Language または MSIL) にコンパイルされ、CLR のマネージ環境で実行されます。
一方、アンマネージ コードはネイティブ コード (アセンブリとも呼ばれます) に直接コンパイルされ、CLR では実行されません。
C# コードをビルドすると、CIL にコンパイルされます。これが、ildasm や Reflector などのツールを使用してコンパイル済みコードを検査できる理由です。CIL コードを実行すると正確に何が起こるかは、状況によって異なります。かもしれない
コメントに記載されているように、MSILはCILに名前が変更されました。
C# Code --> C# compiler --> CIL
なぜなら
CIL = Managed
その文脈に置くと、
Native Code = Unmanaged
Managed Code
これは完全に異なるものであり、ソースコードを参照していることに注意してください。
それを拡張したい場合、修正された完全なプロセスは次のとおりです。
.NET Code --Compiler--> CIL (Managed) --JIT/NGEN--> Native Code (Unmanaged)
参照: