BC42025: Paylaşılan üyeye, sabit üyeye, sabit üyeye veya iç içe geçmiş türe bir örnek üzerinden erişim; nitelenen ifade değerlendirilmeyecek

Bir sınıfın veya yapının örnek değişkeni, bu sınıf veya yapıda tanımlanan bir Shared değişkene, özelliğe, yordama veya olaya erişmek için kullanılır. Bu uyarı, bir örnek değişkeni, sabit veya numaralandırma ya da iç içe geçmiş sınıf veya yapı gibi bir sınıfın veya yapının örtük olarak paylaşılan bir üyesine erişmek için kullanılırsa da oluşabilir.

Üye paylaşımının amacı, bu üyenin yalnızca tek bir kopyasını oluşturmak ve bu tek kopyayı, içinde bildirildiği sınıfın veya yapının her örneği için kullanılabilir hale getirmektir. Bir üyeye, bu sınıfın veya yapının tek bir örneğini barındıran bir değişken yerine, sınıfı veya yapısı adıyla erişmek Shared bu amaçla tutarlıdır.

Bir üyeye Shared bir örnek değişkeni aracılığıyla erişmek, üyenin olduğu Sharedgerçeğini gizleyerek kodunuzun anlaşılmasını zorlaştırabilir. Ayrıca, bu erişim paylaşılan üyenin bir örneğini döndüren bir yordam gibi başka eylemler gerçekleştiren bir Function ifadenin parçasıysa, Visual Basic ifadeyi ve aksi takdirde gerçekleştireceği diğer eylemleri atlar.

Daha fazla bilgi ve örnek için bkz. Paylaşılan.

Varsayılan olarak, bu ileti bir uyarıdır. Uyarıları gizleme veya uyarıları hata olarak işleme hakkında daha fazla bilgi için bkz. Visual Basic'te Uyarıları Yapılandırma.

Hata Kimliği: BC42025

Örnek

Aşağıdaki örnek bc42025 oluşturur:

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

Bu uyarıyı gidermek için

Aşağıdaki örnekte gösterildiği gibi, üyeyi erişecek şekilde tanımlayan sınıfın Shared veya yapının adını kullanın:

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

Uyarı

İki programlama öğesi aynı ada sahip olduğunda kapsamın etkileri için uyarıda bulunun. Önceki örnekte kullanarak bir örneği Dim testClass As TestClass = Nothingbildirirseniz, derleyici çağrısına testClass.SayHello() sınıf adı üzerinden yöntemin erişimi olarak davranır ve hiçbir uyarı gerçekleşmez.

Ayrıca bakınız