[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
参考文献
http://www.atmarkit.co.jp/fdotnet/csharp_abc/csharp_abc_020/csharp_abc01.htmlhttp://ufcpp.net/study/csharp/sp_attribute.html