Erro: "Type < Nome da Classe > is not defined" mensagem de erro ao tentar herdar um protegido aninhados classe no Visual Basic .NET

IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.

Clique aqui para ver a versão em Inglês deste artigo: 820656
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Sintomas
Quando você tenta herdar uma classe aninhada protegida no Visual Basic. NET, você receber a seguinte mensagem de erro compilação:
Digite um Protected Class Name não está definido
Como Contornar
Para contornar este problema, altere a classe aninhada protegida para uma classe aninhada pública. Quando você herda a classe aninhada, qualifica a classe aninhada com uma classe pai. O código a seguir demonstra a solução alternativa para o exemplo listado na seção "Mais informações" deste artigo:
Option Explicit On Option Strict OnPublic Class OuterBase    Public Sub New()        'Constructor    End Sub    'Modify this class as public.    Public Class InnerBase        Private a As Integer        Public Sub New()            'Constructor        End Sub    End ClassEnd ClassPublic Class OuterDerived    Inherits OuterBase    Dim ia As OuterBase.InnerBase    'Qualify the Nested class with its Parent.    Protected Class InnerDerived        Inherits OuterBase.InnerBase        Public Sub New()            'Constructor        End Sub    End Class    Public Sub New()        'Constructor    End SubEnd Class
Situação
A Microsoft confirmou que esse é um problema nos produtos da Microsoft listados na seção "Aplica-se a".
Mais Informações

Passos para reproduzir o problema

  1. Inicie o Microsoft Visual Studio NET..
  2. No menu arquivo , aponte para novo e, em seguida, clique em Project .
  3. Clique em Projetos do Visual Basic em Project Types , clique em Class Library em modelos e, em seguida, clique em OK . Por padrão, Class1 é criado.
  4. Cole o seguinte código em class1:
    Option Explicit On Option Strict OnPublic Class OuterBase    Public Sub New()        'Constructor    End Sub    'Define a protected class.    Protected Class InnerBase        Private a As Integer        Public Sub New()            'Constructor        End Sub    End ClassEnd ClassPublic Class OuterDerived    Inherits OuterBase    Dim ia As OuterBase.InnerBase    'Inherit protected nested class.    Protected Class InnerDerived        Inherits InnerBase        Public Sub New()            'Constructor        End Sub    End Class    Public Sub New()        'Constructor    End SubEnd Class
  5. No menu Build , clique em Build Solution . Você receber a mensagem de erro compilação listada na seção "Sintomas" deste artigo.
Referências
Para obter mais informações sobre como implementar classes aninhadas, visite o seguinte site da Web Microsoft Developer Network (MSDN):

Aviso: este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 820656 - Última Revisão: 12/08/2015 02:42:58 - Revisão: 1.3

Microsoft Visual Basic .NET 2003 Standard Edition, Microsoft Visual Basic .NET 2002 Standard Edition

  • kbnosurvey kbarchive kbmt kbvs2005doesnotapply kbvs2005swept kbvs2002sp1sweep kbprogramming kbcode kbinheritance kberrmsg kbbug KB820656 KbMtpt
Comentários