title: Are nested types implicitly static?
body: <p>In the C# 5.0 language specification it says:</p>
  
  <blockquote>
    <p>Note that constants and nested types are classified as static members.</p>
  </blockquote>
  
  <p>so if I write:</p>
  
  <pre><code>class A
  {
     int a;
  
     class B
     {
         public void foo()
         {
             int j = a; // ERROR
         } 
     }
  }
  </code></pre>
  
  <p>the assignment of a to j give me a CS0120 error </p>
  
  <blockquote>
    <p>"An object reference is required for the nonstatic field, method, or
    property 'member'"</p>
  </blockquote>
  
  <p>so I could understand that also <code>foo</code> is implicit static.</p>
  
  <p>However when I look both the decompiled code and IL code there is no indication of static keyword!</p>
  
  <pre><code>internal class A
  {
      private class B
      {
          public void foo()
          {
          }
      }
  
      private int a;
  }
  
  
  // Nested Types
      .class nested private auto ansi beforefieldinit B
          extends [mscorlib]System.Object
      {
          // Methods
          .method public hidebysig 
              instance void foo () cil managed 
          {
  
          } 
          ...
      }
  </code></pre>
  
  <p>Is a nested type really a static type with all methods implicitly static?</p>