共通中間言語
CLIはコンパイルされたクラスについての情報をメタデータとして記録する。Component Object Modelのタイプライブラリのように、メタデータによってアプリケーションが、アセンブリ内にあるインターフェイス、クラス、型、メソッド、そしてフィールドをサポートし発見することを可能とする。このようなメタデータを読み取る処理はリフレクションと呼ばれる。
メタデータは属性 の形式のデータである。カスタム属性はAttributeクラスを継承することで作ることができる。これはとても強力な機能である。クラスの作成者が付加した追加情報は、クラスの消費者によってアプリケーション毎に様々な方法で活用される。
以下はCILで書かれた基本的なHello worldプログラムであり、文字列 "Hello, world!" をコンソールに表示する。
以下のコードはオペコードの数をより複雑にしたものである。
以下のコードはJavaバイトコードについての記事の当該コードと比較することもできる。
CILシンタックスでは、以下のようになる。
これはVMレベル近くでどのようにCILが見えるかを表現したものである。コンパイルされた場合、メソッドはテーブルにストアされ、アセンブリ内部にバイトとして命令がストアされる。そしてそれはPortable Executable (PE) である。