title: Specifying Specific Type of a Delegate Argument
body: <p>Assuming I have the following delegate</p>
  
  <pre><code>public delegate void ControlInitializer(Control control);
  </code></pre>
  
  <p>Is there a way when specifying the delegate to specify what type of control the input parameter is? e.g.</p>
  
  <p>Instead of </p>
  
  <pre><code>ControlInitializer one = c =&gt; ((TextBox)c).Text = "Init Value"
  ControlInitializer two = c =&gt; ((DropDownList)c).SelectedValue= "-1"
  </code></pre>
  
  <p>Can I do something like</p>
  
  <pre><code>ControlInitializer one = (TextBox c) =&gt; c.Text = "Init Value"
  ControlInitializer two = (DropDownList c) =&gt; c.SelectedValue= "-1"
  </code></pre>
  
  <p>As Textbox is a sub class of Control in this case?</p>
  
  <p>Update: I also need to store these 2 ControlInitialiser delegates in a e.g. </p>
  
  <pre><code>Dictionary&lt;string, ControlInitializer&gt;
  </code></pre>
  
  <p>will specifying </p>
  
  <pre><code>Dictionary&lt;string, ControlInitializer&lt;Control&gt;&gt;
  </code></pre>
  
  <p>Work in this case as I can't seem to get it to work.</p>
  
  <p>Thanks in advance.</p>