Lire en anglais

Partager via


BC30451 : le nom '<name>' n’est pas déclaré

Une instruction fait référence à un élément de programmation, mais le compilateur ne parvient pas à trouver un élément portant ce nom précis.

ID d’erreur : BC30451

Pour corriger cette erreur

  1. Vérifiez l’orthographe du nom dans l’instruction de référence. Visual Basic ne respecte pas la casse, mais toute autre variante de l’orthographe est considérée comme un nom complètement différent. Notez que le caractère de soulignement (_) fait partie du nom et donc de l’orthographe.

  2. Vérifiez que l’opérateur d’accès aux membres (.) figure bien entre un objet et son membre. Par exemple, si vous disposez d’un contrôle TextBox dont le nom est TextBox1, pour accéder à sa propriété Text , vous devez taper TextBox1.Text. Si, au lieu de cela, vous tapez TextBox1Text, vous créez un nom différent.

  3. Si l’orthographe est correcte et que la syntaxe de l’accès aux membres de l’objet est correcte, vérifiez que l’élément a été déclaré. Pour plus d’informations, consultez Éléments déclarés.

  4. Si l’élément de programmation a été déclaré, vérifiez qu’il est dans l’étendue. Si l’instruction de référence est en dehors de la région déclarant l’élément de programmation, vous devrez peut-être qualifier le nom de l’élément. Pour plus d'informations, consultez Scope in Visual Basic.

  5. Si vous n’utilisez pas un type complet ou un nom de type et de membre (par exemple, votre code fait référence à une propriété en tant que MethodInfo.Name au lieu de System.Reflection.MethodInfo.Name), ajoutez une instruction Imports.

  6. Si vous tentez de compiler un projet de style SDK (un projet avec un fichier *.vbproj commençant par la ligne <Project Sdk="Microsoft.NET.Sdk">) et que le message d’erreur fait référence à un type ou à un membre dans l’assembly Microsoft.VisualBasic.dll, configurez l’application pour qu’elle soit compilée avec une référence à la bibliothèque Runtime Visual Basic. Par défaut, un sous-ensemble de la bibliothèque est incorporé dans votre assembly dans un projet de style SDK.

    Par exemple, l’exemple suivant ne parvient pas à compiler, car la méthode Microsoft.VisualBasic.CompilerServices.Conversions.ChangeType est introuvable. Elle n’est pas incorporée dans le sous-ensemble de la bibliothèque Runtime Visual Basic inclus avec votre application.

    VB
    Imports Microsoft.VisualBasic.CompilerServices
    
    Public Module Example
        Sub Main(args As String())
            Dim originalValue As String = args(0)
            Dim t As Type = GetType(Int32)
            Dim i As Int32 = Conversions.ChangeType(originalValue, t)
            Console.WriteLine($"'{originalValue}' --> {i}")
        End Sub
    End Module
    

    Pour résoudre cette erreur, ajoutez l’élément <VBRuntime>Default</VBRuntime> à la section <PropertyGroup> du projet, comme le montre le fichier projet Visual Basic suivant.

    XML
    <Project Sdk="Microsoft.NET.Sdk">
      <ItemGroup>
          <Reference Include="Microsoft.VisualBasic" />
        </ItemGroup>
      <PropertyGroup>
        <VBRuntime>Default</VBRuntime>
        <OutputType>Exe</OutputType>
        <RootNamespace>vbruntime</RootNamespace>
        <TargetFramework>net472</TargetFramework>
      </PropertyGroup>
    
    </Project>
    

Voir aussi