コードコントラクト

提供: MonoBook
2013年4月11日 (木) 04:07時点における220.213.58.193 (トーク)による版
ナビゲーションに移動 検索に移動

コードコントラクト(英語:Code Contracts)とは、.NET Framework 4.0で追加された「契約による設計」を行うためフレームワークおよびツール群である。

概要

事前条件を表す「Contract.Requires()」と、事後条件を表す「Contract.Ensures()」を覚えておけば完璧である。コードコントラクトおよび契約による設計を極めたも同然かもしれない。

実のところコードコントラクトはD言語の目玉機能のパクリである。後発だけあってプログラミング言語レベルではなくランタイムレベルでの実装・対応という汎用性の高さ実現している。

注意

なお「契約による設計」を行うために必要な静的解析ツールやドキュメント生成ツールなどはVisual Studioのお高い上位エディションでのみ動かせるという仕様であり、これらのツールがないと実行時のエラーチェックの書き方が変わるくらいで特に意味をなさない。

将来的にVisual Studioの上位エディションを導入するというのであればコードコントラクトを用いて記述しておくのも手ではある。また、もしかするとオープンソースのツールも出てくるかもしれないし、エラーチェックの書き方が一様に均一化するというコーディング規約的な意味でも積極的に使ってみる価値があるかもしれない。

インストール

コードコントラクトで用いるライブラリ(クラス群)は.NET Framework 4.0に標準で搭載されているため、とくに何かをしなければならないということはない。

一方、静的解析などを行うためのコードコントラクトで用いるツール群(Visual Studioのアドオン)は.NET FrameworkおよびVisual Studioには標準では含まれず、MSDNのサイト上で別途配布になっているため、使用に際してはダウンロードのうえインストールしておく必要がある。

なお、.NET Framework 4.0の標準クラス群もコードコントラクトを使いまくっているため、Visual Studioにコードコントラクトのアドインをインストールした後は、自前で書いたソースコードにコードコントラクトが埋め込まれてなくとも、標準クラス群の使い方次第では静的解析エラー警告が出まくることがある。

名前空間

コードコントラクトに関するクラス群は System.Diagnostics.Contracts 名前空間に配置されている。

その他

関連項目

参考文献