[英]What does “property” mean on this attribute?
[property: Obsolete]
static int X
{
get { return 42; }
}
在上面的代碼中,“財產”一詞的目的是什么? 如果我將[屬性:已過時]替換為[已過時],則代碼似乎以相同的方式工作。 而且,盡管“屬性”在Visual Studio中顯示為藍色,但它並未出現在C#關鍵字列表中: https : //docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/
屬性規范將其定義為attribute target
。
某些上下文允許在多個目標上指定屬性。 程序可以通過包含attribute_target_specifier來顯式指定目標。 將屬性放在全局級別時,需要global_attribute_target_specifier。 在所有其他位置,將應用合理的默認值,但是在某些模棱兩可的情況下,可以使用attribute_target_specifier確認或覆蓋默認值(或者在非模棱兩可的情況下,只需確認默認值)。
它還指出,在許多情況下(如您提到的情況),這是允許的,但不是必需的。
在其他情況下,允許包含attribute_target_specifier,但不是必需的。 例如,類聲明可以包含或省略說明符類型。
這是屬性目標規范 。
在您的代碼中,實際上並不需要使用它,因為在該位置該屬性只有一個允許的目標。 可以將Obsolete
屬性放置在類型,方法或屬性上,但是如果放置在屬性上,則僅允許使用property
目標說明符(並隱式使用)。
最實際的用途是assembly
目標說明符,您可以在其中通過屬性設置組裝配置:
[assembly: AssemblyProduct("Foo bar")]
您可以使用AttributeUsage
在自定義屬性上設置允許的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.