System::DoTryFinally метод

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

Одна функция, эмулирующая поведение оператора C#’s try[-catch]-finally. При переводе оператора C#’s try[-catch]-finally с опцией translator’s 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#. При переводе оператора 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_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, который эмулируется.

См. также