Design By Contract
C#で契約による設計はSystem.DiagnosticsネームスペースのDebug.Assertメソッドを使用して行うようだ.
例えば事前条件と事後条件のチェックは以下のように行う.
using System.Diagnostics public class Foo { public void Bar(object baz) { //事前条件 Debug.Assert(baz != null); //処理 //・・・ //事後条件 Debug.Assert("処理の結果・・・"); } }
不変条件のチェックはInvariantメソッドを定義して,適宜クラス内で自分で呼び出すことになるようだ.
さすがに不変条件のチェックは自動ではやってくれんか.