管理人の技術ブログです。非同期処理を非常に簡単に記述できる言語機能として大変重宝し、愛されています。await演算子は通常のメソッドだけでなくラムダ式内でも利用できるなど、かなり広範囲への適用が可能です。例外処理をする場合はtry句の中でしかawait演算子を利用できないという大きな制約がありました。Windowsストアアプリの開発時、例外が発生した際にメッセージを表示しようとした場合に以下のようなコードが書けませんでした。}}なので、大体以下のような書き方で回避してきたと思います。6.0ではこの制約が取り払われ、catch句/finally句でもawait演算子を利用できるようになりました。非常に素晴らしい改善です。内部実装を覗くで、async/awaitは糖衣構文であることを紹介しました。今回行われたcatch句/finally句への拡張はどのように展開されるのか。逆コンパイルをして試してみました。}}上記のコードを逆コンパイルすると以下のようになります。変数名やラベル名などはもっとヒドい状態で展開されますが、読み易さのために意味が変わらない範囲で大きく改変しています。その点はご了承ください。}}非常に上手く展開されています。5.0のときに最初から同じようにやらなかったのか疑問ではあります...。(1)月別アーカイブはてなブログをはじめよう!xin9leさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。