Tôi có biểu thức lambda mà tôi muốn có thể truyền và sử dụng lại. Dưới đây là các mã:C# Vượt qua biểu thức Lambda như tham số phương thức
public List<IJob> getJobs(/* i want to pass the lambda expr in here */) {
using (SqlConnection connection = new SqlConnection(getConnectionString())) {
connection.Open();
return connection.Query<FullTimeJob, Student, FullTimeJob>(sql,
(job, student) => {
job.Student = student;
job.StudentId = student.Id;
return job;
},
splitOn: "user_id",
param: parameters).ToList<IJob>();
}
Mấu chốt ở đây, là tôi muốn để có thể vượt qua các biểu thức lambda mà tôi đang sử dụng ở đây vào phương pháp mà đang gọi mã này, vì vậy tôi có thể tái sử dụng nó. Biểu thức lambda là đối số thứ hai bên trong phương thức .Query của tôi. Tôi giả sử tôi muốn sử dụng một hành động hoặc Func, nhưng tôi không hoàn toàn chắc chắn cú pháp là gì cho điều này hoặc làm thế nào nó khá hoạt động. Có thể ai đó xin vui lòng cho tôi một ví dụ?
Hãy tham số một hành động hoặc một Func Calling. –
Phải, đó là những gì tôi nghĩ ... bạn có thể chỉ cho tôi một ví dụ về cách tôi sẽ làm điều này? –
có thể trùng lặp của [biểu thức lambda C# dưới dạng đối số hàm] (http: // stackoverflow.com/questions/5396746/c-sharp-lambda-expressions-as-function-argument) – user