Compiler Error CS0038

无法通过嵌套类型“type2”来访问外部类型“type1”的非静态成员

类中的字段不自动可用于嵌套类。若要可用于嵌套类,该字段必须是 static。否则,必须创建外部类的实例。有关更多信息,请参见嵌套类型(C# 编程指南)

下面的示例生成 CS0038:

// CS0038.cs
class OuterClass
{
   public int count;
   // try the following line instead
   // public static int count;

   class InnerClass
   {
      void func()
      {
         // or, create an instance
         // OuterClass class_inst = new OuterClass();
         // int count2 = class_inst.count;
         int count2 = count;   // CS0038
      }
   }

   public static void Main()
   {
   }
}