CSIは、C#ファイルをコマンドラインでコンパイルを許可するシンプルなC#インタープリタ である。.NET4.0がサポートされた新しいバージョンがリリースされた。
CSIは、ファイルやメモリ上のソースコードを入力として受け付けて、最終的に生成されたアセンブリを実行する。結果バイナリとコードの変更同期を維持するためのプロジェクトファイルや関連ファイルが必要なく、自己記述のバッチファイルだけで、シンプルにすることができる。
サンプルバッチファイル Hello.cs
public class Hello { public static void Main() { System.Console.WriteLine("Hello World"); } }
使用方法のサンプルは以下の通り。
C:\>CSI Hello.cs Hello World
Windows環境でのスクリプトとバッチファイルは、.NET Frameworkを使用することができるPowerShellを含めて多数の選択肢がある。しかしながらそこはオープンソースであるため、CSIは、さらなる振る舞いのカスタマイズ性と新しい.NETとC#の機能をより迅速にサポートすることができる。
CSI 4.0は、.NET 4 Beta 2 フレームワークをもとにして.NET4.0を対象にしている。このバージョンでは、スクリプト作成者にdynamic型、プッシュベースのIObservableインターフェイス、TupleクラスなどC# 4.0の新しい機能が提供されている。
CSIにはまた、コマンドラインを使わなくてもC#バッチファイルを実行するために.CSIファイルをWindowsに登録するコマンドスクリプトを持っている。CSIは、複数のファイルの実行をひとつのコマンドとカスタム参照の指定に含めることができる機能でバッチファイルを実行するのを簡単にする。だが、CSIは対話型のシェルではなく、REPLでもない。
RubyのIRBのような本当の対話型C#シェルは、、Monoプロジェクトに含まれるCsharpReplという異なるプロジェクトにおいて、REPLコンパイラサービスが提供されている。