title: Associating Additional Information with .NET Enum
body: <p>My question is best illustrated with an example.</p>
  
  <p>Suppose I have the enum:</p>
  
  <pre><code>public enum ArrowDirection
  {
      North,
      South,
      East,
      West
  }
  </code></pre>
  
  <p>I want to associate the unit vector corresponding to each direction with that direction.  For example I want something that will return (0, 1) for North, (-1, 0) for West, etc.  I know in Java you could declare a method inside the enum which could provide that functionality.</p>
  
  <p>My current solution is to have a static method -- inside the class that defines the enum -- that returns a vector corresponding to the passed in ArrowDirection (the method uses a HashTable to accomplish the lookup but that's not really important).  This seems... unclean.</p>
  
  <p>Question:<br>
  <strong>Is there a best-practice solution for storing additional information corresponding to an enum in .NET?</strong></p>