C# 7: Dissecting Local Functions to understand how they capture local variables