[英]C# How to change the type of value field in set accessor?
我是 C# 的新手,我試圖使用 set 訪問器將新的 Person object 添加到我的 class Person 的一個名為 children 的人員列表中,使用以下方法,但我也想使用返回的人員數組.
問題是 set 訪問器中的 value 字段是 Person 的數組,我不希望它是那樣的,我希望它是 Person 的實例而不是人員的數組,所以我可以將它添加到 List
class Person
{
private string firstName;
private string lastName;
public string FullName
{
get
{
return firstName + lastName;
}
}
public readonly DateTime dateOfBirth;
public readonly FavoriteColor favoriteColor;
private List<Person> children;
public Person[] Children
{
get
{
return children.ToArray();
}
set
{
children.Add(value);
}
}
}
那么我可以做些什么來使用屬性在 C# 中實現這一目標?
同一屬性上的 getter 和 setter 不可能有不同的類型。 在大多數情況下,這也沒有多大意義。 您可以使用不同的屬性來獲取和設置:
public Person[] Children => children.ToArray();
public Person LatestChild
{
set { this.children.Add(value); }
}
但老實說,只添加一個AddChild
方法可能是一個更好的主意。
public Person[] Children => children.ToArray();
public void AddChild(Person child)
{
children.Add(value);
}
setter 需要一個Person[]
類型的 object ,因為這就是您定義屬性的方式。
通過刪除 setter 並將Add(Person person)
方法添加到您的 class 來將數組屬性設為只讀。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.