Spec#とは、C#にEiffel風の仕様記述言語的要素を追加したプログラミング言語である。Spec#ではオブジェクト不変条件・・などの契約を記述するための構文を持つ。ESC/Javaのように、定理証明機を用いた静的検証ツールを持っており、不変条件の多くを静的に検証できる。 .NET Framework 4.0におけるコードコントラクトAPIはSpec#とともに発展してきた。Spec#はSing#の基礎にもなっている。