Property accessors are a pretty useful addition to Object Oriented Programming; they allow for class designers to restrict and abstract what would normally be simple values by using "getter" and "setter" logic. Though properties normally just expose a private variable, sometimes it's helpful to include a bit of additional logic of some sort. Russ noticed that the designers of the "Contact" class he was using didn't quite understand the "a bit" part ...

//ED: Found in code utilizing the class
string firstName = contactDetails.contact.firstName; //saves
string lastName = contactDetails.contact.lastName; //saves
string address1 = contactDetails.contact.address1;  
string address2 = contactDetails.contact.address2;
string primaryPhone = contactDetails.contact.primaryPhone; //saves


//ED: From the Contact class ...
/// <summary>
/// Gets or sets the contact passed to it.
/// This hasn't neccessarily been saved to the database 
/// </summary>
public Contact contact 
{
  get 
  { 
    return SaveToDatabase();
  }
  set
  {
    LoadFromContact(value);
  }
}