Erreur du compilateur CS0103

Le nom 'identifier' n’existe pas dans le contexte actuel

Une tentative a été faite pour utiliser un nom qui n’existe ni dans la classe, ni dans l’espace de noms ni dans la portée. Vérifiez l’orthographe du nom ainsi que vos directives using et références d’assembly afin de vous assurer que le nom que vous essayez d’utiliser est disponible.

Cette erreur se produit souvent si vous déclarez une variable dans une boucle ou un bloc try ou if, puis si vous tentez d’y accéder à partir d’un bloc de code englobant ou d’un autre bloc de code, comme le montre l’exemple suivant :

Notes

Cette erreur peut également être présentée en cas d’absence du symbole greater than dans l’opérateur => d’une expression lambda. Pour plus d’informations, consultez expressions 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);
        }
    }
}

L’exemple suivant résout cette erreur :

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