Freigeben über


Compilerfehler CS0103

Der Name „identifier“ ist im aktuellen Kontext nicht vorhanden.

Es wurde versucht, einen Namen zu verwenden, der nicht in der Klasse, im Namespace oder im Gültigkeitsbereich vorhanden ist. Überprüfen Sie die Schreibweise des Namens und die using-Direktiven und Assemblyverweise, um sicherzustellen, dass der Name, den Sie verwenden möchten, verfügbar ist.

Dieser Fehler tritt häufig auf, wenn Sie eine Variable in einer Schleife oder einem try- oder if-Block deklarieren und dann versuchen, von einem einschließenden Codeblock oder einem separaten Codeblock darauf zuzugreifen, wie im folgenden Beispiel gezeigt:

Hinweis

Dieser Fehler kann auch angezeigt werden, wenn das greater than-Symbol im Operator => in einem Ausdruckslambda fehlt. Weitere Informationen finden Sie unter Ausdruckslambdas.

using System;

class MyClass1
{
    public static void Main()
    {
        try
        {
            // The following declaration is only available inside the try block.
            var conn = new MyClass1();
        }
        catch (Exception e)
        {
            // The following expression causes error CS0103, because variable
            // conn only exists in the try block.
            if (conn != null)
                Console.WriteLine("{0}", e);
        }
    }
}

Im folgende Beispiel wird der Fehler behoben:

using System;

class MyClass2
{
    public static void Main()
    {
        // To resolve the error in the example, the first step is to
        // move the declaration of conn out of the try block. The following
        // declaration is available throughout the Main method.
        MyClass2 conn = null;
        try
        {
            // Inside the try block, use the conn variable that you declared
            // previously.
            conn = new MyClass2();
        }
        catch (Exception e)
        {
            // The following expression no longer causes an error, because
            // the declaration of conn is in scope.
            if (conn != null)
                Console.WriteLine("{0}", e);
        }
    }
}