Confused about references in objects
<p>I am really confused about object relationships! 
I have two classes Person and Address. Here are the details: </p>

<pre><code> public class Person
    {
        public string FirstName { get; set; }
        public string LastName { get; set; }

        private List&lt;Address&gt; _addresses = new List&lt;Address&gt;(); 

        public void AddAddress(Address address)
        {
            _addresses.Add(address);
            address.Person = this; 
        }

        public List&lt;Address&gt; Addresses  
        {
            get { return _addresses; }
            set { _addresses = value; }
        }
    }

  public class Address
    {
        public string Street { get; set; }


        public Person Person
        {
            get; set;
        }
    }
</code></pre>

<p>The AddAddress method in the Person class adds the address to the Addresses collection and also sets the Person for the Address object. Now, in the code I do the following: </p>

<pre><code>var person = new Person() { FirstName = "John", LastName = "Doe" };
            person.AddAddress(new Address() { Street = "Blah Blah" });

            person.Addresses[0].Person = null; 
</code></pre>

<p>I am thinking that it should set the person object to null since Addresses[0].Person is pointing to the original person object. But it is not setting it to null. What is going on here? </p>
