/*
         *  1. Add the required classes to make the following code compile.
         *  HINT: Use a Dictionary in the AddressBook class to store Contacts. The key should be the contact's email address.
         *
         *  2. Run the program and observe the exception.
         *
         *  3. Add try/catch blocks in the appropriate locations to prevent the program from crashing
         *      Print meaningful error messages in the catch blocks.
         */

        static void Main(string[] args)
        {
            // Create a few contacts
            Contact bob = new Contact()
            {
                FirstName = "Bob",
                LastName  = "Smith",
                Email     = "*****@*****.**",
                Address   = "100 Some Ln, Testville, TN 11111"
            };
            Contact sue = new Contact()
            {
                FirstName = "Sue",
                LastName  = "Jones",
                Email     = "*****@*****.**",
                Address   = "322 Hard Way, Testville, TN 11111"
            };
            Contact juan = new Contact()
            {
                FirstName = "Juan",
                LastName  = "Lopez",
                Email     = "*****@*****.**",
                Address   = "888 Easy St, Testville, TN 11111"
            };

            // List<Dictionary<string, Contact>> addressBook = new List<Dictionary<string, Contact>>();

            // Create an AddressBook and add some contacts to it
            AddressBook addressBook = new AddressBook();

            addressBook.AddContact(bob);
            addressBook.AddContact(sue);
            addressBook.AddContact(juan);

            try{
                // Try to add a contact a second time
                addressBook.AddContact(sue);
            }
            catch (Exception)
            {
                Console.WriteLine("That contact is already in the AddressBook");
            }

            // Create a list of emails that match our Contacts
            // This is for my reference as not Console.Writing it
            List <string> emails = new List <string>()
            {
                "*****@*****.**",
                "*****@*****.**",
                "*****@*****.**",
            };

            // Insert an email (that does NOT match a Contact) into position [1]
            // in list - ie ... after Sue So her infor should show up on first loop
            // I DON'T put the try before this line because it has no
            // problem inserting this email in the list and so skips over the catch
            // The exception shows up when I TRY to print out the contact info for not.in email
            emails.Insert(1, "*****@*****.**");

            try{
                //  Search the AddressBook by email and print the information about each Contact
                foreach (string email in emails)
                {
                    Contact contact = addressBook.GetByEmail(email);
                    Console.WriteLine("----------------------------");
                    Console.WriteLine($"Name: {contact.FullName}");
                    Console.WriteLine($"Email: {contact.Email}");
                    Console.WriteLine($"Address: {contact.Address}");
                }
            }
            catch (Exception) {
                Console.WriteLine("There is no contact infor for that email");
            }
        }
示例#2
0
          static void Main(string[] args)
          {
              // Create a few contacts
              Contact bob = new Contact()
              {
                  FirstName = "Bob", LastName = "Smith",
                  Email     = "*****@*****.**",
                  Address   = "100 Some Ln, Testville, TN 11111"
              };
              Contact sue = new Contact()
              {
                  FirstName = "Sue", LastName = "Jones",
                  Email     = "*****@*****.**",
                  Address   = "322 Hard Way, Testville, TN 11111"
              };
              Contact juan = new Contact()
              {
                  FirstName = "Juan", LastName = "Lopez",
                  Email     = "*****@*****.**",
                  Address   = "888 Easy St, Testville, TN 11111"
              };


              // Create an AddressBook and add some contacts to it
              AddressBook addressBook = new AddressBook();

              addressBook.AddContact(bob);
              addressBook.AddContact(sue);
              addressBook.AddContact(juan);

              // Try to addd a contact a second time
              addressBook.AddContact(sue);


              // Create a list of emails that match our Contacts
              List <string> emails = new List <string>()
              {
                  "*****@*****.**",
                  "*****@*****.**",
                  "*****@*****.**",
              };

              // Insert an email that does NOT match a Contact
              emails.Insert(1, "*****@*****.**");


              //  Search the AddressBook by email and print the information about each Contact
              foreach (string email in emails)
              {
                  try
                  {
                      Contact contact = addressBook.GetByEmail(email);
                      Console.WriteLine("----------------------------");
                      Console.WriteLine($"Name: {contact.FullName}");
                      Console.WriteLine($"Email: {contact.Email}");
                      Console.WriteLine($"Address: {contact.Address}");
                  }
                  catch (System.NullReferenceException)
                  {
                      Console.WriteLine($"The email {email} was not found in the address book");
                  }
              }
          }