When to use the Value keyword in C#
<p>I am using a <a href="http://weblogs.asp.net/pwelter34/archive/2006/05/03/444961.aspx" rel="nofollow">custom serializer</a> in c# in order to serialize/deserialize an object with a dictionary. However during the deserialization the dictionary object was not being set correctly. See code:</p>

<pre><code>public DictionarySerializer&lt;String, Point&gt; jointDictionary
    {
        get { return _jointDictionary; }
        set { _jointDictionary = jointDictionary; }
    }
</code></pre>

<p>The jointDictionary object coming back was empty however in the debugger thread I noticed a "value" object that had the contents of my dictionary. Changing my code to the following fixed my issue:</p>

<pre><code>public DictionarySerializer&lt;String, Point&gt; jointDictionary
    {
        get { return _jointDictionary; }
        set { _jointDictionary = value; }
    }
</code></pre>

<p>I have read about the "value" keyword and understand that it is a reserved word in C# to specify the value that the client it trying to use to set the object. So my question is, why wouldn't the jointDictionary reference work as in my first attempt? And what is the correct usage for the value keyword?</p>
