2017-07-19 125 views
0

當定義默認值,是什麼類模型 - 設置默認值

[DefaultValue("member")] 
public string Role { get; set; } 

public string Role { get; set; } = "member"; 

回答

2

第一之間的差,其可以是用於元編程有用的屬性。例如,如果某人清除輸入,您可能想要記住默認值。它有什麼也沒有與C#語言本身。它不會修改Role的值。

第二個實際上將該屬性的值設置爲內存中的'成員'。

2

the documentation

甲DefaultValueAttribute不會造成構件與該屬性的值被自動初始化。您必須在代碼中設置初始值。

換句話說,您的第一個示例幫助工具(如Windows窗體設計器)知道屬性的預期默認值是什麼。但它在運行時沒有沒有

如果您希望在運行時爲某個屬性分配一個默認值,則必須自己執行該操作,就像在第二個示例中所展示的那樣。