title: Passing delegate function with extra parameters
body: <p>I have a delegate which looks like the following:</p>
  
  <pre><code>public delegate bool ApprovalPrompt(ApprovalType type, int receipt, params string[] info);
  </code></pre>
  
  <p>I accept a delegate of this type as a parameter to the function I want to call.  However, in one particular calling function, I want to pass some extra data to the function which matches this delegate.</p>
  
  <p>Here's the signature of the implementing function:</p>
  
  <pre><code>private static bool LogApprovalNeeded(FraudFilterUtilities.ApprovalType type, int receipt, params string[] info)
  </code></pre>
  
  <p>and it's being called as follows:</p>
  
  <pre><code>PrepareReceipt(LogApprovalNeeded);
  </code></pre>
  
  <p>I'd like it to be:</p>
  
  <pre><code>private static bool LogApprovalNeeded(Customer cust, FraudFilterUtilities.ApprovalType type, int receipt, params string[] info)
  </code></pre>
  
  <p>which ideally would be used as follows:</p>
  
  <pre><code>PrepareReceipt(LogApprovalNeeded(myCustomer))
  </code></pre>
  
  <hr>
  
  <p>How can I accomplish such a thing?  I'd rather not need to declare a field in the class just to hold the <code>Customer</code> parameter between one function and the callback...</p>