title: System.ValueType Understanding
body: <p>I tried to create a <code>ValueType</code>.</p>
  <p>I understand that creating a struct would help me.</p>
  <p>I also tried to derive a type from <code>System.ValueType</code> which is an abstract class.</p>
  <p>But I got a compiler error message</p>
  <blockquote>
  <p>&quot;<strong>.. cannot derive from special class System.ValueType</strong>&quot;</p>
  </blockquote>
  <p>When I see the metadata of <code>ValueType</code>, it looks to be a regular abstract class. Any non sealed class should be derivable. But <code>System.ValueType</code> is not a sealed class.</p>
  <ol>
  <li><p>What made it special?</p>
  </li>
  <li><p>Is it the C# compiler that senses it as special?</p>
  </li>
  <li><p>If so, is it recommended as a rule for compiler design? I mean is it part of Common Language Specification?</p>
  </li>
  </ol>