プログラム言語 属性

概要

クラスやメンバーの付加情報
デバック中に機能するもの、コンパイル中に機能するもの、実行中に機能するものと様々。
クラス利用者へのメッセージ・指示、コンパイラへの指示等。

エントリポイント

///

/// アプリケーションのメイン エントリ ポイントです。
///

[STAThread]
static void Main()
{
Application.Run(new Form1());
}

スレッド種類

[STAThread]
メソッドがシングルスレッドアパートメントである事を明示
元々WindowsのCOMコンポーネントは、STA(SingleThreadApartment)でないとエラーになる為、
Mainメソッドにはこの属性が付与されている。

別スレッドにてActiveXコントロールを使用する際には以下の設定が必要。
Thread other = new Thread(start: new ThreadStart(非同期処理));
other.SetApartmentState(ApartmentState.STA);
other.Start();

コーディング時の警告

[Obsolete("警告:代わりに~を使って下さい。")]
public static void OldMethod(){}

[Obsolete("エラー:代わりに~を使って下さい。", true)]
public static void VeryOldMethod(){}

public static void Main()
{
  // コンパイル時:警告。「警告:代わりに~を使って下さい。」
  OldMethod();
  
  // コンパイル時:エラー。「エラー:代わりに~を使って下さい」
  VeryOldMethod();
}