Aracılığıyla paylaş


Nasıl yapılır: Bir Değişkenin Kapsamını Denetleme (Visual Basic)

Normalde bir değişken, içinde bildirdiğiniz bölgenin tamamında kapsam dahilindedir veya başvuru için görünür durumdadır. Bazı durumlarda değişkenin erişim düzeyi kapsamını etkileyebilir.

Daha fazla bilgi için bkz . Visual Basic'te Kapsam.

Blok veya Yordam Düzeyinde Kapsam

Bir değişkeni yalnızca bir blok içinde görünür hale getirmek için

  • Değişkenin Dim Deyimini, örneğin bir For döngünün ve deyimleri arasında, bu bloğun For başlatma ve Next sonlandırma bildirim deyimleri arasına yerleştirin.

    Değişkene yalnızca bloğun içinden başvurabilirsiniz.

Bir değişkeni yalnızca bir yordam içinde görünür hale getirmek için

  • Değişkenin Dim deyimini yordamın içine ancak herhangi bir Withbloğun (...End With bloğu gibi) dışına yerleştirin.

    Değişkene yalnızca yordamın içinde, yordamda yer alan herhangi bir bloğun içinde de dahil olmak üzere başvurabilirsiniz.

Modül veya Ad Alanı Düzeyinde Kapsam

Kolaylık sağlamak için tek terimli modül düzeyi modüllere, sınıflara ve yapılara eşit şekilde uygulanır. Modül düzeyi değişkeninin erişim düzeyi, kapsamını belirler. Modülü, sınıfı veya yapıyı içeren ad alanı da kapsamı etkiler.

Bir değişkeni modül, sınıf veya yapı boyunca görünür hale getirmek için

  1. Değişkenin Dim deyimini modülün, sınıfın veya yapının içine, ancak herhangi bir yordamın dışına yerleştirin.

  2. Deyimine Private anahtar sözcüğünü Dim ekleyin.

  3. Değişkene modül, sınıf veya yapı içinde herhangi bir yerden başvurabilirsiniz, ancak değişkenin dışından başvuramayın.

Bir değişkenin ad alanı genelinde görünür olmasını sağlamak için

  1. Değişkenin Dim deyimini modülün, sınıfın veya yapının içine, ancak herhangi bir yordamın dışına yerleştirin.

  2. Deyimine Friend veya Public anahtar sözcüğünü Dim ekleyin.

  3. Değişkene, modülü, sınıfı veya yapıyı içeren ad alanı içinde herhangi bir yerden başvurabilirsiniz.

Örnek

Aşağıdaki örnek modül düzeyinde bir değişken bildirir ve modülün içindeki kodla görünürlüğünü sınırlar.

Module demonstrateScope  
    Private strMsg As String  
    Sub initializePrivateVariable()  
        strMsg = "This variable cannot be used outside this module."  
    End Sub  
    Sub usePrivateVariable()  
        MsgBox(strMsg)  
    End Sub  
End Module  

Yukarıdaki örnekte modülde demonstrateScope tanımlanan tüm yordamlar değişkenine StringstrMsgbaşvurabilir. usePrivateVariable Yordam çağrıldığında, dize değişkeninin strMsg içeriğini bir iletişim kutusunda görüntüler.

Önceki örnekte yapılan aşağıdaki değişiklikle, dize değişkenine strMsg bildiriminin ad alanında herhangi bir yerde kod tarafından başvurulabilir.

Public strMsg As String  

Güçlü Programlama

Bir değişkenin kapsamı ne kadar dar olursa, aynı ada sahip başka bir değişkenin yerine yanlışlıkla başvurmak için sahip olduğunuz fırsat da o kadar az olur. Başvuru eşleştirme sorunlarını da en aza indirebilirsiniz.

.NET Framework Güvenliği

Bir değişkenin kapsamı ne kadar dar olursa, kötü amaçlı kodun bu değişkeni yanlış kullanma olasılığı o kadar az olur.

Ayrıca bkz.