Представьте, что у меня есть набор глобальных методов, которые не связаны ни с какими конкретными классами.Каждый метод принимает ровно один объект и возвращает ровно один объект различных типов.
Я хочу иметь возможность связать эти методы вместе, чтобы объект, возвращаемый одним методом, передавался в качестве параметра следующему методу и т. Д.на.Методы расширения - это самый простой и изящный способ, которым я могу воспользоваться для достижения этой цели:
var result = someObj.ExtensionMethod1().ExtensionMethod2().ExtensionMethod3();
Однако у меня также есть метод log
, который принимает параметр объекта, и я хочу передать результат каждогометод к этому log
методу.Например:
var result1 = someObj.ExtensionMethod1();
log(result1);
var result2 = result1.ExtensionMethod2();
log(result2);
var result3 = result2.ExtensionMethod3();
log(result3);
Есть ли более элегантный способ сделать это, чтобы мне не приходилось создавать временные переменные для передачи каждый раз, когда я вызываю метод?