BC30369: Bir sınıfın örnek üyesine, sınıfın açık bir örneği olmadan paylaşılan bir yöntemden veya paylaşılan üye başlatıcıdan başvuramaz

Paylaşılan bir yordam içinden bir sınıfın paylaşılmayan üyesine başvurmayı denediniz. Aşağıdaki örnekte böyle bir durum gösterilmektedir:

Class Sample
    Public x as Integer
    Public Shared Sub SetX()
        x = 10
    End Sub
End Class

Yukarıdaki örnekte atama deyimi x = 10 bu hata iletisini oluşturur. Bunun nedeni paylaşılan yordamın bir örnek değişkenine erişmeye çalışmasından kaynaklanır.

Değişken x , Paylaşılan olarak bildirilmediğinden bir örnek üyesidir. Sınıfın Sample her örneği kendi bağımsız değişkenini xiçerir. Bir örnek değerini ayarlar veya değiştirirse x, başka bir örnekte değerini etkilemez x .

Ancak, yordam SetXShared sınıfının Sampletüm örnekleri arasındadır. Bu, sınıfın herhangi bir örneğiyle ilişkilendirilmediği, bunun yerine tek tek örneklerden bağımsız olarak çalıştığı anlamına gelir. Belirli bir örnekle bağlantısı olmadığından bir setX örnek değişkenine erişemez. Yalnızca değişkenler üzerinde Shared çalışması gerekir. Paylaşılan bir değişkenin değerini ayarlar veya değiştirirse SetX , bu yeni değer sınıfın tüm örnekleri tarafından kullanılabilir.

Hata Kimliği: BC30369

Bu hatayı düzeltmek için

  1. Üyenin sınıfın tüm örnekleri arasında paylaşılmasını mı yoksa her örnek için ayrı tutulmasını mı istediğinize karar verin.

  2. Üyenin tek bir kopyasının tüm örnekler arasında paylaşılmasını istiyorsanız, üye bildirimine anahtar sözcüğünü ekleyin Shared . Anahtar sözcüğünü Shared yordam bildiriminde tutun.

  3. Her örneğin kendi bireysel üye kopyasına sahip olmasını istiyorsanız, üye bildirimi için belirtmeyin Shared . Anahtar sözcüğünü Shared yordam bildiriminden kaldırın.

Ayrıca bakınız