Compartilhar via


Erro do Compilador CS0103

O nome 'identifier' não existe no contexto atual

Houve uma tentativa de usar um nome que não existe na classe, namespace ou escopo. Verifique a ortografia do nome e verifique suas diretivas using e referências de assembly para verificar se o nome que você está tentando usar está disponível.

Esse erro ocorre muitas vezes quando você declara uma variável em um loop ou um bloco try ou if e, em seguida, tenta acessá-la de um bloco de código delimitador ou separado, conforme mostrado no seguinte exemplo:

Observação

Esse erro também pode ser apresentado quando o símbolo greater than está ausente no operador => em uma expressão lambda. Para obter mais informações, confira expressão lambdas.

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

O seguinte exemplo resolve o erro:

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