【C#】属性(アトリビュート) ~定義済み属性~

属性(アトリビュート)とは

 * クラスやメンバーに色々な情報を付加することができる

属性の種類

 [1] 定義済み属性
 [2] カスタム属性

[1] 定義済み属性

 * 以下が参考になる
http://youryella.wankuma.com/Library/Document/ControlAttribute.aspx

Obsolete

 * 古いバージョンとの互換性のためだけに残してるけど、このクラスはもう使わないようにユーザに警告する(Javaにもあるね)
http://blogs.yahoo.co.jp/dk521123/27462999.html

Seriarisable

 * オブジェクトがシリアル化(アプリケーションが終了してもオブジェクトの状態を、ファイルなどに書き出す)可能であることを示す

Description

 * プロパティまたはイベントの説明を指定

DisplayName

 * プロパティまたはイベントの表示名を指定

DefaultValue

 * プロパティをリセットしたときに設定する値を指定

ReadOnly

 * 読み取り専用にするかを指定

Conditional

 * 特定の条件下でのみ実行されるメソッドを定義するために使用
 * 以下のサンプルを参照のこと

サンプル

* DEBUGビルドのみに動作する属性を付加する(ログクラスを作成した時に使えそう)

Class1.cs (呼び出し元。アトリビュートを使用)

using System.Diagnostics; // ★必要★

class Class1
{
    [Conditional("DEBUG")] // ★属性(アトリビュート)★
    public void ForDebug()
    {
        Console.WriteLine("ForDebug called");
    }
}

Form1.cs (呼び出し先)

private void button1_Click(object sender, EventArgs e)
{
    Class1 instance = new Class1();
    Console.WriteLine("Start");
    instance.ForDebug(); // 実行
    Console.WriteLine("End");
}

Debugビルド時の出力

Start
ForDebug called
End

Releaseビルド時の出力

Start
End


関連記事

XMLコードコメント

http://blogs.yahoo.co.jp/dk521123/22290838.html

関連記事

属性(アトリビュート) ~定義済み属性~

http://blogs.yahoo.co.jp/dk521123/22779532.html

属性(アトリビュート) ~カスタム属性~

http://blogs.yahoo.co.jp/dk521123/29483903.html