#c_sharp #aspnet #функции #делегаты #параметры
Есть множество функций типа flipImageV. До и после кода в этих функциях должны быть одинаковые строки кода. Что бы в каждой функции типа flipImageV их не писать, хочу сделать одну, куда буду передавать нужную функцию на выполнение... Вот универсальная функция, куда передаю выбранную функцию типа flipImageV: protected void editImage(delegate func) { currentImage.ImageUrl = @"..\images\img0.jpg"; func(); photo.Save(@"~\" + imagePath); } Функция типа flipImageV: protected void flipImageV(object sender, EventArgs e) { photo.FlipVertical(); } Использование того шаблона: editImage(flipImageV); или protected void flipImageV(object sender, EventArgs e) { editImage(photo.FlipVertical()); } Что должно быть вместо delegate func? Как это лучше сделать?
Ответы
Ответ 1
Используйте просто Action: protected void editImage(Action func) { currentImage.ImageUrl = @"..\images\img0.jpg"; func(); photo.Save(@"~\" + imagePath); } Вызывать как-то так: editImage(() => photo.FlipVertical()); Если вам нужно непременно передавать внутрь функцию наподобие flipImageV, которая получает два игнорируемых аргумента, можно так: editImage(() => flipImageV(null, EventArgs.Empty));
Комментариев нет:
Отправить комментарий