我在向班级添加信息时遇到了麻烦

时间:2013-05-07 20:02:17

标签: c# class

在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;
        }

1 个答案:

答案 0 :(得分:0)

我认为您需要重新考虑您的代码结构。为什么AddressBook包含ContactInfo将包含的信息?

为什么不让联系人包含所有内容并将其作为AddressBook中的列表?

// obviously pseudocode
AddressBook {
   Name
   OwnerName
   ...
   List(of Contacts)
   MethodToGetContactInfo()
}

如果你可以避免它,你不想多次存储相同的数据(你几乎总是可以设计好)。在你走得太远之前我会回到绘图板上,这将需要做更多的工作。