【问题标题】:What does "property" mean on this attribute?这个属性的“属性”是什么意思?
【发布时间】:2019-06-12 18:20:12
【问题描述】:
【问题讨论】:
标签:
c#
properties
attributes
【解决方案1】:
这是attribute target specification。
在您的代码中,实际上并没有必要使用它,因为在该位置只有一个允许该属性的目标。 Obsolete 属性可以放置在类型、方法或属性上,但如果放置在属性上,则仅允许使用 property 目标说明符(并隐式使用)。
对此最实际的用途是assembly 目标说明符,您可以在其中通过属性设置程序集配置:
[assembly: AssemblyProduct("Foo bar")]
您可以使用 AttributeUsage 在自定义属性上设置允许的目标。
【解决方案2】:
Attribute specification 将此定义为attribute target。
某些上下文允许在超过
一个目标。程序可以通过包含显式指定目标
一个属性目标说明符。当一个属性被放置在
全局级别,需要一个 global_attribute_target_specifier。在所有
其他位置,应用合理的默认值,但
attribute_target_specifier 可用于确认或覆盖
在某些模棱两可的情况下默认(或只是确认默认情况下
非模棱两可的情况)。
它还指出,在许多情况下,就像你提到的那样,它是允许的,但不是必需的。
在其他情况下,包含一个attribute_target_specifier 是
允许但不必要。例如,一个类声明可以
包括或省略说明符类型。