[英]Square bracket Syntax Above Property Declaration
在查看 C# 代碼(使用 .NET 4.0 框架)時,我一直看到以下語法:
[XmlIgnore, Bindable(false)]
public virtual FieldBase Field {get;set;}
屬性標題上方的方括號的用途是什么?
這些是屬性,它們可以應用於您的代碼庫的元素,並在這樣做時將元數據應用於該事物 - 如描述性聲明。 這些東西可以有多個屬性。 .NET 框架公開了一堆“內置”屬性,但是您可以定義自己的屬性。
作為屬性的類型實際上是用一個完全限定的名稱SuchAThingAttribute
,而在應用時,您只需要指定名稱減去Attribute
就變成了SuchAThing
。 而且它們必須從System.Attribute
派生(至少要合規)。
一個屬性可以有“設置”,也就是說,您可以指定(在編寫自己的時)該屬性適用於哪些類型的元素,以及一個元素是否可以具有多個此類屬性,等等.
稍后可以使用Reflection和GetCustomAttribute
類的方法獲取屬性的元數據。 此處和此處的鏈接顯示了這樣做的示例。
這些是屬性。 請查看屬性(C# 和 Visual Basic) 。
您正在查看的是一個屬性。 方括號是將屬性應用於給定成員所需的語法,在這種情況下是屬性訪問器,但屬性也可以應用於類等。
這些是分配給變量的屬性。 一個經典的用例是強制執行它們所應用的模型屬性。
當與 Code First 原則結合使用時,模型中這些屬性中指定的驗證規則會在應用程序保存數據庫中的更改並避免錯誤數據進入數據庫之前強制執行。
public class Person
{
//We cannot have a digit as part of a Person's name, unless ofcourse
//you are Elon Musks child
[RegularExpression(@"[^0-9]*")]
public string Name{ get; set; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.