在VB.Net中,我使用了這種變體,所以當使用SearchModel時,有一個空的標籤準備就緒。如何在C#中實例化一個屬性的新實例
Public Class SearchModel
Public Property Tags As New List(Of TagDetails)
End Class
一個簡單的轉換結果在這一點,但「標籤」爲空:
public class SearchModel
{
public List<TagDetails> Tags { get; set; }
}
這是創建了「標籤」屬性,並在同一時間創建一個新的空單可以接受的方法是什麼?
public class SearchModel
{
public List<TagDetails> Tags = new List<TagDetails>();
}
或者我應該通過所有這個儀式嗎?
public class SearchModel
{
private List<TagDetails> _TagDetails;
public List<TagDetails> Tags
{
get { return _TagDetails ?? (_TagDetails = new List<TagDetails>()); }
set { _TagDetails = value; }
}
}
+1。通常情況下,你會在這種情況下將'set'設置爲private,所以不能替代List本身,但內容仍然可以修改。 (也編輯答案)。 –
那麼,如果你希望它是私人的,那麼只能讓它成爲一個私人設置者。僅僅因爲你在構造函數中實例化了它,並不意味着你有*使它成爲一個私有的setter。 – Gromer
@AlexeiLevenkov:我會同意Gromer。私人二傳手並不是必須具有構造函數的人。 –