Trailing Closures
Similar to Swift, RemObjects C# supports using a Trailing Closures syntax when calling methods whose last parameter is a closure. This can make for code that looks cleaner and more easy to read than embedding the closure as last parameter within the parentheses.
The following snippet shows a call to dispatch_async
with a trailing closure:
dispatch_async(dispatch_get_main_queue) {
// do work
}
Compared to the classic call with the closure embedded:
dispatch_async(dispatch_get_main_queue, () => {
// do work
});
If the closure receives any parameters, their names will be inferred from the declaration of the method or the delegate type used in the declaration, and become available as if they were local identifiers:
Limitations
Trailing closures are not supported inside the base
/this
call to a deferred constructor, or inside __require
/__ensure
clauses.