У меня есть делегат для моего кода, который выглядит как
public delegate bool ApprovalPrompt(ApprovalType type, int receipt, params string[] info);
Я принимаю делегат этого типа в качестве параметра функции, которую я хочу вызвать. Однако в одной конкретной вызывающей функции я хочу передать некоторые дополнительные данные функции, которая соответствует этому делегату.
В настоящее время сигнатура функции реализации
private static bool LogApprovalNeeded(FraudFilterUtilities.ApprovalType type, int receipt, params string[] info) { }
и называется
PrepareReceipt(LogApprovalNeeded);
Я хотел бы, чтобы это было
private static bool LogApprovalNeeded(Customer cust, FraudFilterUtilities.ApprovalType type, int receipt, params string[] info) { }
который, в идеале, будет использоваться примерно так:
PrepareReceipt(LogApprovalNeeded(myCustomer))
Есть ли способ сделать что-то подобное? Мне не нужно было бы объявлять поле в классе только для того, чтобы удерживать параметр Customer
между одной функцией и обратным вызовом...