Não é possível fazer referência a um membro de instância de uma classe de dentro de um método compartilhado ou inicializador de membro compartilhado sem uma instância explícita da classe
Você tentou fazer referência a um membro não compartilhado de uma classe de dentro de um procedimento compartilhado.O exemplo a seguir demonstra uma situação como essa.
Class sample
Public x as Integer
Public Shared Sub setX()
x = 10
End Sub
End Class
No exemplo anterior, a instrução de atribuição x = 10 gera esta mensagem de erro.Isso ocorre porque um procedimento compartilhado está tentando acessar uma variável de instância.
A variável x é um membro de instância porque ela não foi declarada como Compartilhamento (Visual Basic).Cada instância da classe sample contém sua própria variável individual x .Quando uma instância define ou altera o valor de x, ela não afeta o valor de x em qualquer outra instância.
No entanto, o procedimento setX é Shared entre todas as instâncias da classe sample.Isso significa ele não está associado com qualquer uma instância da classe, mas em vez disso, funciona independentemente das instâncias individuais.Como ele não possui nenhuma conexão com uma determinada instância, setX não pode acessar uma variável de instância.Ele deve operar somente em variáveis Shared.Quando setX define ou altera o valor de uma variável compartilhada, esse novo valor está disponível para todas as instâncias da classe.
ID de erro: BC30369
Para corrigir este erro
Decida se deseja que o membro a ser compartilhado entre todas as instâncias da classe, ou mantido individual para cada instância.
Se você desejar que uma única cópia do membro seja compartilhada entre todas as instâncias, adicione a palavra-chave Shared para a declaração de membro.Manter a palavra-chave Shared na declaração do procedimento.
Se você desejar que cada instância tenha sua própria cópia individual do membro, não especifique Shared na declaração de membro.Remova a palava-chave Shared da declaração.