コンパイラ エラー CS0592

属性 'attribute' はこの宣言型では無効です。 'type' 宣言でのみ有効です。

属性を定義する場合、AttributeTargets 値を指定してコンストラクトに適用できるものを定義します。 次の例では、AttributeUsage 属性に AttributeTargets.Interface が指定されているため、MyAttribute 属性はインターフェイスにのみ適用できます。 属性はクラス (クラス A) に適用されているため、エラーが生成されます。

次の例では CS0592 が生成されます。

// CS0592.cs  
using System;  
  
[AttributeUsage(AttributeTargets.Interface)]  
public class MyAttribute : Attribute
{  
}  
  
[MyAttribute]  
// Generates CS0592 because MyAttribute is not valid for a class.
public class A
{  
    public static void Main()  
    {  
    }  
}  

関連項目