Compiler Error CS0592

特性“attribute”对此声明类型无效。它只对“type”声明有效。

在定义特性时,可通过指定 AttributeTargets 值来定义可将该特性应用于什么构造。在下面的示例中,MyAttribute 特性只能应用于接口,因为 AttributeUsage 特性指定 AttributeTargets.Iterface。之所以会生成错误,原因是该特性应用于类(类 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()
    {
    }
}

请参阅

特性(C# 和 Visual Basic)