C# 8 looks like a nice update. using declarations in particular, though, are pretty darn cool. I’m sure you’ve written a using within a using within a using, right? Something like this:

SomeMethod()
{
    using ( disposableObject1 )
    {
        using ( disposableObject2 )
        {
            using ( disposableObject3 )
            {
                // magic happens here
            }
        }
    }
}

If you’re not intimately familiar with using, when an object wrapped in a using falls out of the using scope, Dispose will be called on it.

Multiple using, like the above, certainly adds noise and can impede code legibility. It gets a bit better with stacking using

SomeMethod()
{
    using ( disposableObject1 )
    using ( disposableObject2 )
    using ( disposableObject3 )
    {
        // magic happens here
    }
}

C# 8 adds the nice feature of imlicit scope, so now, it looks like this:

SomeMethod()
{
    using var disposableObject1 = new DisposableObject();
    using var disposableObject2 = new DisposableObject();
    using var disposableObject3 = new DisposableObject();
    // magic happens here
}

Check it out here, or, look over at the Random Thoughts blog for more in-depth discussion.