title: Func delegate as a constructor parameter
body: <p>Trying to get my head round using delegates.</p>
  
  <p>I have a class <code>synchronise.cs</code> takes two collections of different types and edits them. The collections are held in another other <code>viewModel</code> class. I've written a constructor which takes two <code>Func</code> delegates as parameters in <code>synchronise.cs</code>:</p>
  
  <pre><code> public Synchronise(
       Func&lt;IEnumerable&lt;T&gt; , IEnumerable&lt;S&gt;&gt; MappingStoT,
       Func&lt;IEnumerable&lt;S&gt;, IEnumerable&lt;T&gt;&gt; MappingTtoS )
   {
  
   }
  </code></pre>
  
  <p>I'm then trying to new up a <code>Synchronise</code> object in my ViewModel and pass two methods with the collections as parameters:</p>
  
  <pre><code>this.mySynchroniser = new Synchronise&lt;IBindableData, object&gt;(MappingStoT(CollectionA), MappingTtoS(CollectionB));
  </code></pre>
  
  <p>Finally my two methods:</p>
  
  <pre><code> public IEnumerable&lt;CollectionA&gt; MappingStoT(IEnumerable&lt;CollectionB&gt; CollectionForEdit)
   {
       var query = blah blah
       return query;
   }
  
   public IEnumerable&lt;CollectionB&gt; MappingTtoS(IEnumerable&lt;CollectionA&gt; CollectionForEdit)
   {
        var query = Blah blah
        return query;
   }
  </code></pre>
  
  <p>I'm getting <code>not assignable to parameter type</code> on my new <code>Synchronizer</code>. Am I going about this the right way? </p>