title: Why switch expressions of type 'System::Guid' are illegal?
body: <pre><code>void Foo(Type^ type)
  {
    System::Guid id = type-&gt;GUID;
    switch (id)
    {
    case System::Byte::typeid-&gt;GUID:
      ...
      break;
    ...
    }
  </code></pre>
  
  <p>Obviously case expressions are not constant. But I'd like to know why GUIDs cannot be known at compile time? (silly question I guess).</p>
  
  <p>At the end of the day it looks you have to use imbricated <code>if then else</code> for testing against <code>typeid</code> and thats the only way to go, right?</p>