BC30451: A név<> nincs deklarálva

Az utasítás egy programozási elemre hivatkozik, de a fordító nem talál ilyen nevű elemet.

Hibaazonosító: BC30451

A hiba kijavítása

  1. Ellenőrizze a név helyesírását a hivatkozó utasításban. A Visual Basic kis- és nagybetűket nem érzékelyítő, de a helyesírás bármely más változata teljesen más névnek minősül. Vegye figyelembe, hogy az aláhúzásjel (_) a név része, ezért a helyesírás része.

  2. Ellenőrizze, hogy rendelkezik-e a taghozzáférés-operátorral (.) egy objektum és annak tagja között. Ha például egy TextBox vezérlőelem neve van TextBox1, a tulajdonság eléréséhez be kell gépelnie TextTextBox1.Text. Ha ehelyett beírja TextBox1Text, egy másik nevet hozott létre.

  3. Ha a helyesírás helyes, és az objektumtagok hozzáférésének szintaxisa helyes, ellenőrizze, hogy az elem deklarálva lett-e. További információ: Deklarált elemek.

  4. Ha a programozási elem deklarálva van, ellenőrizze, hogy hatókörben van-e. Ha a hivatkozó utasítás a programozási elemet deklaráló régión kívül esik, előfordulhat, hogy az elem nevét kell minősítenie. További információ: Hatókör a Visual Basicben.

  5. Ha nem teljes értékű típust vagy típust és tagnevet használ (például a kód egy tulajdonságra MethodInfo.Name hivatkozik ahelyett System.Reflection.MethodInfo.Name), adjon hozzá egy Import utasítást.

  6. Ha egy SDK-stílusú projektet próbál lefordítani (egy *.vbproj fájllal rendelkező projektet, amely a vonallal <Project Sdk="Microsoft.NET.Sdk">kezdődik), és a hibaüzenet a Microsoft.VisualBasic.dll-szerelvény egy típusára vagy tagjára hivatkozik, konfigurálja az alkalmazást úgy, hogy a Visual Basic Runtime-kódtárra hivatkozva fordítson. Alapértelmezés szerint a kódtár egy részhalmaza egy SDK-stílusú projektben van beágyazva a szerelvénybe.

    A következő példa például nem fordítható le, mert a Microsoft.VisualBasic.CompilerServices.Conversions.ChangeType metódus nem található. Nem ágyazódik be az alkalmazáshoz tartozó Visual Basic Runtime részhalmazába.

    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
    

    A hiba elhárításához adja hozzá az <VBRuntime>Default</VBRuntime> elemet a projektek <PropertyGroup> szakaszához, ahogy az alábbi Visual Basic-projektfájl is mutatja.

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

Lásd még