首页 > 解决方案 > 这个属性的“属性”是什么意思?

问题描述

[property: Obsolete]
static int X
{
    get { return 42; }
}

在上面的代码中,“属性”这个词有什么作用?如果我将 [property: Obsolete] 替换为 [Obsolete],代码的工作方式似乎相同。尽管“属性”在 Visual Studio 中显示为蓝色,但它并未出现在 C# 关键字列表中: https ://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/

标签: c#propertiesattributes

解决方案


这是一个属性目标规范

在您的代码中,实际上并没有必要使用它,因为在该位置只有一个允许该属性的目标。Obsolete属性可以放置在类型、方法或属性上,但如果放置在属性上,则只允许property使用目标说明符(并隐式使用)。

最实际的用途是assembly目标说明符,您可以在其中通过属性设置程序集配置:

[assembly: AssemblyProduct("Foo bar")]

您可以使用 为您的自定义属性设置允许的目标AttributeUsage


推荐阅读