Error del compilador CS0103

El nombre "identifier" no existe en el contexto actual

Se ha intentado usar un nombre que no existe en la clase, en el espacio de nombres o en el ámbito. Compruebe la ortografía del nombre y compruebe las directivas using y las referencias de ensamblado para asegurarse de que el nombre que intenta usar está disponible.

Este error suele producirse si declara una variable en un bucle o un bloque de try o de if y después intenta tener acceso desde un bloque de código que agrega o un bloque de código independiente, como se muestra en el ejemplo siguiente:

Nota

Este error también se puede presentar cuando falta el símbolo greater than en el operador => en una expresión lambda. Para más información, consulte las expresiones lambda.

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);
        }
    }
}

En el ejemplo siguiente se resuelve el error:

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);
        }
    }
}