気になった事を自由に書いてます。
      
開発しやすくするために
デバッグ作業であ!これ良いなぁと思った事があったので今日はそれを紹介します。
なんてことない、プログラムのサンプルでよく見かけるConsole.WriteLine( )です。
私の場合、このメソッドは主にプログラムの状態(変数の値)や処理分岐が意図した所を
通っているか確認するときに使用します。
手軽に使えてリアルタイムで見れて大変便利なのですが、、、
開発しやすくするために

Console.WriteLine( )を至る所に配置すると、テキストが大量に出力し確認したい
箇所を見逃してしまいます。そうなると一旦停止させログをさかのぼらないといけません。 これではリアルタイムで確認という利点を失ってしまいます。
開発しやすくするために

そこで出てくるのが、Conditional属性です。
Conditional属性を使用すると、条件付きメソッドを定義できます。
条件付きコンパイルシンボルを設定すると、このメソッドは呼び出され
シンボルを設定しない場合は呼び出されません。なので、、
テストコード
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

using System.Diagnostics;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            timer1.Start();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            DebugLogClick("画面で入力した文字列[" + textBox1.Text + "]");
        }
        
        private void timer1_Tick(object sender, EventArgs e)
        {
            int i = DateTime.Now.Minute + DateTime.Now.Second;
            DebugLogTimer("タイマー処理 " + DateTime.Now + " [" + i + "]");
        }

        [Conditional("DEBUG_CLICK")]
        private void DebugLogClick(string text)
        {
            Console.WriteLine(text);
        }
        [Conditional("DEBUG_TIMER")]
        private void DebugLogTimer(string text)
        {
            Console.WriteLine(text);
        }
    }
}
開発しやすくするために
これで条件付きコンパイルシンボル"DEBUG_CLICK"をつけてるDebugLogClick( )メソッド
だけ実行されます。
複数人で開発するプロジェクトでは、他人がデバッグ用で出力したConsoleテキストは
ちょっとウザったいですよね。開発メンバーの皆さんがこのようなメソッドを利用するよう
ルール付けてやれば、少しは開発しやすくなるのではないでしょうか。
      




Effective C# 4.0
ビル・ワグナー
¥ 3,780



Copyright (C) 2011 - 2017 猫の気ままなC#日記