Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Próbowano odwołać się do nieudzielonego elementu członkowskiego klasy z poziomu procedury udostępnionej. W poniższym przykładzie pokazano taką sytuację:
Class Sample
Public x as Integer
Public Shared Sub SetX()
x = 10
End Sub
End Class
W poprzednim przykładzie instrukcja x = 10 przypisania generuje ten komunikat o błędzie. Dzieje się tak, ponieważ procedura udostępniona próbuje uzyskać dostęp do zmiennej wystąpienia.
Zmienna x jest elementem członkowskim wystąpienia, ponieważ nie jest zadeklarowana jako Współdzielona. Każde wystąpienie klasy Sample zawiera własną zmienną xindywidualną . Gdy jedno wystąpienie ustawia lub zmienia wartość x, nie ma wpływu na wartość x w żadnym innym wystąpieniu.
Jednak procedura SetX należy Shared do wszystkich wystąpień klasy Sample. Oznacza to, że nie jest ona skojarzona z żadnym wystąpieniem klasy, ale działa niezależnie od poszczególnych wystąpień. Ponieważ nie ma połączenia z konkretnym wystąpieniem, setX nie może uzyskać dostępu do zmiennej wystąpienia. Musi działać tylko na Shared zmiennych. Gdy SetX ustawia lub zmienia wartość zmiennej udostępnionej, ta nowa wartość jest dostępna dla wszystkich wystąpień klasy.
Identyfikator błędu: BC30369
Aby naprawić ten błąd
Zdecyduj, czy element członkowski ma być współużytkowany między wszystkimi wystąpieniami klasy, czy zachowany indywidualnie dla każdego wystąpienia.
Jeśli chcesz, aby pojedyncza kopia elementu członkowskiego była współdzielona między wszystkimi wystąpieniami, dodaj
Sharedsłowo kluczowe do deklaracji elementu członkowskiego. ZachowajSharedsłowo kluczowe w deklaracji procedury.Jeśli chcesz, aby każde wystąpienie miało własną pojedynczą kopię elementu członkowskiego, nie należy określać
Shareddeklaracji elementu członkowskiego.SharedUsuń słowo kluczowe z deklaracji procedury.