Why is this in static context?
<pre><code>public T Prop = new Ctor(Method);

private K Method(U controller, V request);
</code></pre>

<p>I get that it can't access <code>Method</code> here, because <code>Method</code> is required to be <code>static</code>. Why is this? <code>Prop</code> is not <code>static</code>.</p>

<p><strong>Update:</strong> Here's the actual signature:</p>

<pre><code>public DataSource(Func&lt;ControllerBase, AjaxDataTable.Request, Result&gt; dataSelector)
</code></pre>

<p>And this is how the method used to be:</p>

<pre><code>public AjaxDataTable&lt;SourcesViewModel.Source.Channel&gt;.DataSource AjaxData =
    new AjaxDataTable&lt;SourcesViewModel.Source.Channel&gt;.DataSource(OnSelectData);
</code></pre>

<p>This wasn't an issue because I didn't need to reference <code>this</code>, so when I added <code>this</code> and it didn't compile anymore, (the field wasn't mine to begin with, someone else had done it like that, so don't hate me for that). I changed it to the following:</p>

<pre><code>private AjaxDataTable&lt;SourcesViewModel.Source.Channel&gt;.DataSource ajaxData;
public AjaxDataTable&lt;SourcesViewModel.Source.Channel&gt;.DataSource AjaxData
{
    get
    {
        if (ajaxData == null)
        {
            ajaxData =
                new AjaxDataTable&lt;SourcesViewModel.Source.Channel&gt;
                    .DataSource(OnDataSelector);
        }
        return ajaxData;
    }
}
</code></pre>

<p>But then the <code>ajaxData</code> private field would always be <code>null</code>, which makes the data table be instanced again every time (this is appended into a concurrent dictionary, which causes an <code>Exception</code> on a duplicate key). I want to know how assigning to a field that doesn't reference <code>this</code> works. Does that create something that is reused across all instances of an <code>object</code>?</p>
