在C#中我有一个AddressBook类,在该类中我有一个Contacts列表。我有一个Contact类,它继承自我的抽象Person类(它有Name,Sex,DOB)。但我希望每个联系人都能够有联系信息,所以我创建了另一个名为ContactInfo的类(电话号码,地址,城市)。我在弄清楚如何将ContactInfo属性(数字,地址等)附加到用户决定输入到AddressBook的每个联系人时遇到问题。下面是我的Contact类和我的ContactInfo类:
public class Contact : Person
{
public ContactInfo info, newInfo;
public Contact()
{ }
public ContactInfo GetContactInfo()
{
var info = new ContactInfo();
return info.GatherContactInfo();
}
//public ContactInfo Info { get; set; }
}
public class ContactInfo
{
public string PhoneNumber { get; set; }
public string Address { get; set; }
public string City { get; set; }
public string State { get; set;}
public Contact contact;
public ContactInfo()
{ }
public ContactInfo GatherContactInfo()
{
var newInfo = new ContactInfo();
Console.WriteLine("Enter their phone number:");
string phoneNumber = Console.ReadLine();
newInfo.PhoneNumber = StorePhoneNumber(phoneNumber);
Console.WriteLine("Enter their address: ");
string address = Console.ReadLine();
newInfo.Address = StoreAddress(address);
Console.WriteLine("Enter city: ");
string city = Console.ReadLine();
newInfo.City = StoreCity(city);
Console.WriteLine("Enter State: ");
string _state = Console.ReadLine();
newInfo.State = StoreState(_state);
return newInfo;
}
答案 0 :(得分:0)
我认为您需要重新考虑您的代码结构。为什么AddressBook
包含ContactInfo
将包含的信息?
为什么不让联系人包含所有内容并将其作为AddressBook
中的列表?
// obviously pseudocode
AddressBook {
Name
OwnerName
...
List(of Contacts)
MethodToGetContactInfo()
}
如果你可以避免它,你不想多次存储相同的数据(你几乎总是可以设计好)。在你走得太远之前我会回到绘图板上,这将需要做更多的工作。