在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。私人二传手并不是必须具有构造函数的人。 –