Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Cannot refer to an instance member of a class from within a shared method or shared member initializer without an explicit instance of the class
Si è tentato di fare riferimento a un membro non condiviso di una classe dall'interno di una routine condivisa. Nell'esempio riportato di seguito viene illustrata una situazione di questo tipo.
Class sample
Public x as Integer
Public Shared Sub setX()
x = 10
End Sub
End Class
Nell'esempio precedente l'istruzione di assegnazione x = 10 genera il messaggio di errore perché una routine condivisa tenta di accedere a una variabile di istanza.
La variabile x è un membro di istanza poiché non è dichiarata come Shared (Visual Basic). Ciascuna istanza della classe sample contiene una specifica variabile x. L'impostazione o la modifica del valore di x in un'istanza non influisce sul valore di x nelle altre istanze.
Tuttavia, la routine setX è Shared tra tutte le istanze della classe sample. In altri termini, tale routine non è associata ad alcuna istanza della classe, ma funziona in modo indipendente dalle singole istanze. Poiché la routine setX non è collegata a una specifica istanza, non può accedere a una variabile di istanza e deve essere utilizzata solo per variabili Shared. Quando setX imposta o modifica il valore di una variabile condivisa, il nuovo valore è disponibile per tutte le istanze della classe.
ID errore: BC30369
Per correggere l'errore
Stabilire se si desidera condividere un membro tra tutte le istanze della classe o mantenere un membro specifico per ciascuna istanza.
Per condividere un'unica copia del membro tra tutte le istanze, aggiungere la parola chiave Shared alla dichiarazione del membro. Mantenere la parola chiave Shared nella dichiarazione della routine.
Per mantenere una specifica copia del membro per ciascuna istanza, non specificare Shared nella dichiarazione del membro. Rimuovere la parola chiave Shared dalla dichiarazione della routine.