Метод System::DoTryFinally

System::DoTryFinally(T&&, F&&) method

Одиночная функция, эмулирующая поведение оператора try[-catch]-finally языка C#’s. При переводе оператора try[-catch]-finally языка C#’s с параметром translator’s option finally_statement_as_lambda, установленным в true, оператор переводится в вызов этого метода.

template<typename T,typename F> std::enable_if_t<Details::is_lambda_void_void<T>::value> System::DoTryFinally(T &&tryBlock, F &&finallyBlock)
ПараметрОписание
TТип объектной функции, реализующей часть try[-catch] оператора try[-catch]-finally, который эмулируется.
FТип объектной функции, реализующей часть finally оператора try[-catch]-finally, который эмулируется.
ПараметрТипОписание
tryBlockT&&Объект функции, тело которой содержит реализацию части try[-catch] оператора try[-catch]-finally, который эмулируется.
finallyBlockF&&Объект функции, тело которой содержит реализацию части finally оператора try[-catch]-finally, который эмулируется.

См. также

System::DoTryFinally(T&&, F&&) method

Одиночная функция, эмулирующая поведение оператора try[-catch]-finally языка C#’s. При переводе оператора try[-catch]-finally языка C#’s с параметром translator’s option finally_statement_as_lambda, установленным в true, оператор переводится в вызов этого метода. Эта перегрузка обрабатывает случай, когда возвращаемое значение объектной функции, реализующей часть try[-catch] оператора try[-catch]-finally, имеет тип bool.

template<typename T,typename F> std::enable_if_t<Details::is_lambda_void_boolref<T>::value, bool> System::DoTryFinally(T &&tryBlock, F &&finallyBlock)
ПараметрОписание
TТип объектной функции, реализующей часть try[-catch] оператора try[-catch]-finally, который эмулируется.
FТип объектной функции, реализующей часть finally оператора try[-catch]-finally, который эмулируется.
ПараметрТипОписание
tryBlockT&&Объект функции, тело которой содержит реализацию части try[-catch] оператора try[-catch]-finally, который эмулируется.
finallyBlockF&&Объект функции, тело которой содержит реализацию части finally оператора try[-catch]-finally, который эмулируется.

См. также

System::DoTryFinally(T&&, F&&) method

Единственная функция, имитирующая поведение оператора try[-catch]-finally в C#. При переводе оператора try[-catch]-finally C# с опцией переводчика finally_statement_as_lambda, установленной в true, оператор переводится в вызов этого метода. Эта перегрузка обрабатывает случай, когда возвращаемое значение объект‑функции, реализующей часть try[-catch] оператора try[-catch]-finally, имеет тип bool&.

template<typename T,typename F> std::enable_if_t<Details::is_lambda_nonovoid_boolref<T>::value, std::optional<Details::ResultOf<T, bool &>>> System::DoTryFinally(T &&tryBlock, F &&finallyBlock)
ПараметрОписание
TТип объектной функции, реализующей часть try[-catch] оператора try[-catch]-finally, который эмулируется.
FТип объектной функции, реализующей часть finally оператора try[-catch]-finally, который эмулируется.
ПараметрТипОписание
tryBlockT&&Объект функции, тело которой содержит реализацию части try[-catch] оператора try[-catch]-finally, который эмулируется.
finallyBlockF&&Объект функции, тело которой содержит реализацию части finally оператора try[-catch]-finally, который эмулируется.

См. также