Conditional( "DEBUG" )

[Conditional( "DEBUG" )]アトリビュートをメソッドの上に書いておくと、メソッドがリリースの時にコンパイルに含まれないよ。
けれどVisual Express EditionだとデフォルトでDEBUGディレクティブが有効になっているからConditionalに関係なく実行されてしまう。
だからプロジェクトのプロパティからDEBUGディレクティブを無効にするんだけれど、それは面倒だ><。

//#define DEBUG
//#undef DEBUG

using System.Diagnostics;
using System.Windows;


namespace WpfApplication1
{
    /// <summary>
    /// Window1.xaml の相互作用ロジック
    /// </summary>
    public partial class Window1 : Window
    {
        /// <summary>
        /// コンストラクタ
        /// </summary>
        public Window1()
        {
            InitializeComponent();
            this.Loaded += new RoutedEventHandler(Window1_Loaded);
        }

        /// <summary>
        /// 初期化時に実行する
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void Window1_Loaded(object sender, RoutedEventArgs e)
        {
            NewMethod();
            debugMethod( "test" );
        }

        /// <summary>
        /// 単純なコンソール文を出力する
        /// </summary>
        private void NewMethod()
        {
            Debug.WriteLine( "call Window1_Loaded." );
            textBlock1.Text += "call Window1_Loaded.\n";
        }

        /// <summary>
        /// [Conditional( "DEBUG" )]確認用メソッド
        /// </summary>
        /// <param name="pram"></param>
        [Conditional( "DEBUG" )]
        void debugMethod(string pram)
        {
            Debug.WriteLine( "call debugMethod." );
            textBlock1.Text += "call debugMethod => " + pram + "\n";
        }
    }
}