Condividi tramite


BC30451: il nome "<name>" non è dichiarato

Un'istruzione fa riferimento a un elemento di programmazione, ma il compilatore non trova un elemento con quel nome esatto.

ID errore: BC30451

Per correggere l'errore

  1. Controllare l'ortografia del nome nell'istruzione di riferimento. Visual Basic non fa distinzione tra maiuscole e minuscole, ma qualsiasi altra variante dell'ortografia viene considerata un nome completamente diverso. Si noti che il carattere di sottolineatura (_) fa parte del nome e quindi dell'ortografia.

  2. Assicurarsi di avere l'operatore di accesso ai membri (.) tra un oggetto e il relativo membro. Ad esempio, se è presente un controllo TextBox denominato TextBox1, per accedere alla relativa proprietà Text occorre digitare TextBox1.Text. Se invece si digita TextBox1Text, viene creato un nome diverso.

  3. Se l'ortografia è corretta e la sintassi di qualsiasi accesso ai membri dell'oggetto è corretta, verificare che l'elemento sia stato dichiarato. Per altre informazioni, vedere Elementi dichiarati.

  4. Se l'elemento di programmazione è stato dichiarato, verificare che sia incluso nell'ambito. Se l'istruzione di riferimento è all'esterno dell'area di dichiarazione dell'elemento di programmazione, è necessario qualificare il nome dell'elemento. Per altre informazioni, vedere Scope in Visual Basic.

  5. Se non si usa un tipo completo o un tipo e un nome membro (ad esempio se il codice fa riferimento a una proprietà come MethodInfo.Name anziché System.Reflection.MethodInfo.Name), aggiungere un'istruzione Imports.

  6. Se si tenta di compilare un progetto in stile SDK (un progetto con un file *.vbproj che inizia con la riga <Project Sdk="Microsoft.NET.Sdk">) e il messaggio di errore fa riferimento a un tipo o a un membro nell'assembly Microsoft.VisualBasic.dll, configurare l'applicazione per la compilazione con un riferimento alla libreria di runtime di Visual Basic. Per impostazione predefinita, un subset della libreria è incorporato nell'assembly in un progetto in stile SDK.

    Ad esempio, l'esempio seguente non viene compilato perché non è possibile trovare il metodo Microsoft.VisualBasic.CompilerServices.Conversions.ChangeType. Non è incorporato nel subset di Visual Basic Runtime incluso nell'applicazione.

    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
    

    Per risolvere questo errore, aggiungere l'elemento <VBRuntime>Default</VBRuntime> alla sezione<PropertyGroup> dei progetti, come illustrato nel file di progetto Visual Basic seguente.

    <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>
    

Vedi anche