title: Can tuple literals in C# 7.0 enable aspect oriented programming
body: <p>I'm referring to tuple literals as described here: <a href="https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/#comment-321926" rel="nofollow noreferrer">https://blogs.msdn.microsoft.com/dotnet/2016/08/24/whats-new-in-csharp-7-0/#comment-321926</a></p>
  
  <p>Love the tuple literal idea.</p>
  
  <p>However I foresee a lot of looking up the <em>order of the items in return tuples</em> and would like to know how we can get around this.</p>
  
  <p>Wouldn’t it make more sense for example to have the name of the item in the tuple be the identity defining aspect, instead of the order? Or is there a way to do this I'm not seeing?</p>
  
  <p>For example: suppose NextEmployee() is some library method that I don’t have the source code of, and isn’t particularly well documented, and suppose it returns <code>(firstname: “jamie”, lastname: “hince”, id: 102348)</code> to me, and I say:</p>
  
  <pre><code>(string lastname, var _, int __) = NextEmployee(); // I only need the last name
  </code></pre>
  
  <p>The compiler would either happily assign firstname to lastname, or warn or error about it. Why not just map lastname to lastname?</p>
  
  <p>I’d see that allowing for more loosely coupled architecture, if we didn’t have to remember the index of lastname in the tuple, and could just ask for an aspect “lastname” like that.</p>