.NET4 C#のContract

.NET4 C#のContract
φ(..)メモメモ
Assertionの高級版って認識で良いのか?
Debug.Assert()と違ってコンパイルオプションに依存しないのかな?

.NET 4 からは、Code Contracts がつかえます。つまり、こんな書き方ができます。
public void Foo(Bar param) {
Contract.Requires(param != null); // 事前条件
Contract.Ensures( ・・・ ); // 事後条件
}