通常、将来的に廃止される予定のメソッド等にObsoleteアトリビュートを付加する事により、コンパイル時に警告を出す事が出来る。この機能を利用して、あまり理解してない人に利用して欲しくないメソッドに警告を出すようにしている。(本来は、そもそも使えないようにすれば良いのだけれども、、実プロジェクトで大規模なリファクタリングをする時間が無い事は多々あるので…)このときに、#pragmaプリプロセッサを利用して警告を抑制する事ができる。

// obsolete定義
[obsolete("内部からしか使わないでくださいね。")]
void foo();
// 抑制
#pragma warning disable 618
foo();
#pragma warning restore 618

と言うような感じ。disableとrestoreが対応する感じ。値を設定しない場合は、全てが対象。
コード(618等)に関しては、コンパイルの警告リストからMSDNのオンラインヘルプを引けば見る事ができる。
例えば、今回のケースであれば、MSDN(http://msdn2.microsoft.com/ja-jp/library/x5ye6x1e(VS.80).aspx)にCS0618と表記されているので、618を利用すればよい。

カテゴリー: 技術情報