Compilerfehler CS0038

Auf einen nicht statischen Member des äußeren Typs „typ1“ kann nicht über den geschachtelten Typ „typ2“ zugegriffen werden.

Ein Feld in einer Klasse steht nicht automatisch für eine geschachtelte Klasse zur Verfügung. Um es für eine geschachtelte Klasse verfügbar zu machen, muss das Feld statisch sein. Ansonsten müssen Sie eine Instanz der äußeren Klasse erstellen. Weitere Informationen finden Sie unter Geschachtelte Typen.

Im folgenden Beispiel wird CS0038 generiert:

// 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()
    {
    }
}