連載:[完全版]究極のC#プログラミング

Chapter19 小さな改善とコンパイラの新機能

川俣 晶
2010/05/24
Page1 Page2 Page3 Page4

 本記事は、(株)技術評論社が発行する書籍『[完全版]究極のC#プログラミング ― 新スタイルによる実践的コーディング』から、許可を得て転載しています。
 同書籍は、もともと本フォーラムにて連載していた『C# 2.0入門』、『C# 3.0入門』の記事を整理統合し、加筆、修正されたものです。

  手元でまとめて読みたい方は、ぜひ書店などにてお買い求めください。

 【注意】本記事は、書籍の内容を改変することなく、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。

19.1 インライン警告制御「#pragma warning」

 本章では、C# 2.0〜3.0で追加された小さな改善点をアトランダムにまとめる。

 さて、コンパイラの警告は出ないほうがよいとわかっていながら、どうソースコードを修正しても消せない警告が残ってしまうこともある。かといって、オプション指定で一律に消すのも好ましいことではない。本当のバグの存在に気づくチャンスを逃す可能性もあるためだ。

 C/C++などでは「#pragmaディレクティブ」を埋め込んで、指定した警告をソースコード中の特定の箇所でのみ発生させないように対処することができたが、C# 2.0以降でもこれと同じことが可能となった。#pragmaディレクティブとそれを用いて警告を制御する「#pragma warning」の機能が用意されたのである。

 書式は難しくはない。以下のような書式で警告の番号を指定するだけである。

#pragma warning disable 警告番号リスト
警告を止めるとき

#pragma warning restore 警告番号リスト
警告を再開させるとき

 ちなみに、警告番号リストを指定しない場合はすべての警告が対象となる。

 これにより、「#pragma warning disable」を記述した行以降では、指定番号の警告は出力されなくなる。そして、「#pragma warning restore」を記述した行以降で、再び警告は出力されるようになる。

 次のリスト19.1は、実際にこれを使用した例である。183番の警告は、「a is int」のような判定式が“コンパイル時に結果を確定できる”場合に発生する。

using System;
using System.Collections.Generic;
using System.Text;

class Program
{
  static void Main(string[] args)
  {
    int a=0;

// 183番の警告を抑止する
#pragma warning disable 183

    if (a is int) // 警告は出ない
    {
    }

// 183番の警告を再開する
#pragma warning restore 183


     if (a is int) // 警告  式はつねに指定された型 ('int') です。
    {
    }
  }
}
リスト19.1 「#pragma warning」により警告を抑止/再開した例


 INDEX
  [完全版]究極のC#プログラミング
  Chapter19 小さな改善とコンパイラの新機能
  1.19.1 インライン警告制御「#pragma warning」
    2.19.2 部分メソッド定義
    3.19.3 固定サイズバッファ
    4.19.4 volatileがIntPtr型およびUIntPtr型へ適用できる/練習問題
 
インデックス・ページヘ  「[完全版]究極のC#プログラミング」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間