Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine Instanzvariable einer Klasse oder Struktur wird verwendet, um auf eine Shared Variable, Eigenschaft, Prozedur oder ereignis zuzugreifen, die in dieser Klasse oder Struktur definiert ist. Diese Warnung kann auch auftreten, wenn eine Instanzvariable verwendet wird, um auf ein implizit freigegebenes Element einer Klasse oder Struktur zuzugreifen, z. B. eine Konstante oder Aufzählung oder eine geschachtelte Klasse oder Struktur.
Der Zweck der Freigabe eines Mitglieds besteht darin, nur eine einzige Kopie dieses Elements zu erstellen und diese einzelne Kopie für jede Instanz der Klasse oder Struktur verfügbar zu machen, in der sie deklariert wird. Es ist mit diesem Zweck konsistent, auf ein Shared Element über den Namen seiner Klasse oder Struktur zuzugreifen, anstatt über eine Variable, die eine einzelne Instanz dieser Klasse oder Struktur enthält.
Durch den Zugriff auf ein Shared Element über eine Instanzvariable kann der Code schwieriger zu verstehen sein, indem die Tatsache, dass das Element ist, ausgeblendet wird Shared. Wenn ein solcher Zugriff Teil eines Ausdrucks ist, der andere Aktionen ausführt, z. B. eine Function Prozedur, die eine Instanz des freigegebenen Elements zurückgibt, wird der Ausdruck von Visual Basic umgangen, und alle anderen Aktionen, die andernfalls ausgeführt werden würden.
Weitere Informationen und ein Beispiel finden Sie unter "Freigegeben".
Diese Meldung ist standardmäßig eine Warnung. Weitere Informationen zum Ausblenden von Warnungen oder zum Behandeln von Warnungen als Fehler finden Sie unter Konfigurieren von Warnungen in Visual Basic.
Fehler-ID: BC42025
Beispiel
Im folgenden Beispiel wird bc42025 generiert:
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
So beheben Sie diese Warnung
Verwenden Sie den Namen der Klasse oder Struktur, die das Shared Element definiert, um darauf zuzugreifen, wie im folgenden Beispiel gezeigt:
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
Hinweis
Achten Sie auf die Auswirkungen des Bereichs, wenn zwei Programmierelemente denselben Namen haben. Wenn Sie im vorherigen Beispiel eine Instanz mithilfe Dim testClass As TestClass = Nothingdeklarieren, behandelt der Compiler einen Aufruf testClass.SayHello() als Zugriff auf die Methode über den Klassennamen, und es tritt keine Warnung auf.