アサーションに引っかかったときに出すメッセージの構築って面倒ですよね。 Java はアサーションが文法に組み込まれているくせに、アサーションの評価に使った式を表示してくれもしないという・・・ でも C# は文法にさえ組み込まれていないのでもっとアレ・・・ いやいや、C# には式木というものがあるのですよ。 これを使ってメッセージ用の文字列をいい感じに組み立てるアサーション用のメソッドを作ってみました。まだ途中だけど。 以下コードが微妙に長いので注意。 使い方 使い方は Debug.Assert とはちょっと違っていて、 Contract.Assert(() => a != null); のようにラムダ式を渡します。 で、このアサーションに引っかかると、 契約「a != null」に違反しました。 のようなメッセージになります。 ちなみに、式木を使っているのでインクリメントとかデクリメントと