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.
Zmienna wystąpienia klasy lub struktury służy do uzyskiwania dostępu do zmiennej, właściwości, procedury lub zdarzenia zdefiniowanego Shared w tej klasie lub strukturze. To ostrzeżenie może również wystąpić, jeśli zmienna wystąpienia jest używana do uzyskiwania dostępu do niejawnie współużytkowanej składowej klasy lub struktury, takiej jak stała lub wyliczenie, albo zagnieżdżona klasa lub struktura.
Udostępnianie elementu członkowskiego polega na utworzeniu tylko jednej kopii tego elementu członkowskiego i udostępnieniu tej pojedynczej kopii dla każdego wystąpienia klasy lub struktury, w której jest zadeklarowana. Jest to zgodne z tym celem, aby uzyskać dostęp do składowej Shared za pośrednictwem nazwy jej klasy lub struktury, a nie przez zmienną, która zawiera pojedyncze wystąpienie tej klasy lub struktury.
Uzyskanie Shared dostępu do elementu członkowskiego za pomocą zmiennej wystąpienia może utrudnić zrozumienie kodu, zaciemniając fakt, że element członkowski jest Shared. Ponadto jeśli taki dostęp jest częścią wyrażenia, które wykonuje inne akcje, takie jak Function procedura zwracająca wystąpienie udostępnionego elementu członkowskiego, Visual Basic pomija wyrażenie i wszelkie inne akcje, które w przeciwnym razie wykona.
Aby uzyskać więcej informacji i przykład, zobacz Udostępnione.
Domyślnie ten komunikat jest ostrzeżeniem. Aby uzyskać więcej informacji na temat ukrywania ostrzeżeń lub traktowania ostrzeżeń jako błędów, zobacz Konfigurowanie ostrzeżeń w Visual Basic.
Identyfikator błędu: BC42025
Przykład
Poniższy przykład generuje bc42025:
Public Class TestClass
Public Shared Sub SayHello()
Console.WriteLine("Hello")
End Sub
End Class
Module Program
Public Sub Main()
Dim tc As New TestClass()
tc.SayHello() ' BC42025.
End Sub
End Module
Aby rozwiązać to ostrzeżenie
Użyj nazwy klasy lub struktury, która definiuje składową Shared , aby uzyskać do niej dostęp, jak pokazano w poniższym przykładzie:
Public Class TestClass
Public Shared Sub SayHello()
Console.WriteLine("Hello")
End Sub
End Class
Module Program
Public Sub Main()
TestClass.SayHello()
End Sub
End Module
Uwaga / Notatka
Pamiętaj o skutkach zakresu, gdy dwa elementy programowania mają taką samą nazwę. W poprzednim przykładzie, jeśli zadeklarujesz wystąpienie przy użyciu metody Dim testClass As TestClass = Nothing, kompilator traktuje wywołanie testClass.SayHello() metody jako dostęp do metody za pomocą nazwy klasy i nie wystąpi ostrzeżenie.