컴파일러 오류 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()  
    {  
    }  
}  

참고 항목