[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