Visual Basic'de Kapsam
Kapsam bildirilen öğesinin adını nitelemek veya üzerinden kullanılabilir hale getirmek olmadan kendisine başvuruda bulunabilir tüm kod kümesidir bir Imports Deyimi (.NET Ad Alanı ve Türü).Bir öğe kapsama aşağıdaki düzeyleri birine sahip olabilirler:
Düzeyi |
Description |
---|---|
Bloğun kapsamına |
Yalnızca kodu içinde kullanılabilir engellemek, bildirildiði içinde |
Yordam kapsamı |
Bildirilmiş yordamı içinde tüm kod için kullanılabilir |
Modülü kapsamı |
Modül, sınıf veya yapı içinde bildirilmiş tüm kod için kullanılabilir |
Ad kapsamı |
Bildirilmiş ad alanındaki tüm kod için kullanılabilir |
Bu düzeyleri devam eden dar (engelleme) dan kapsamı geniş (ad), burada Dar kapsamı en küçük öğe niteliği olmayan başvurabilir kod kümesini anlamına gelir.Daha fazla bilgi için bkz: Bu sayfada "Kapsamı düzeyleri".
Kapsam belirleme ve değişkenleri tanımlama
Bildirirken, öğenin kapsamını belirtin.Kapsamı aşağıdaki etkenlere bağlı olabilir:
Öðe bildirimini bölge (blok, yordam, modül, sınıf veya yapı)
Öğe bildirimi içeren ad boşluğu
Öğe için bildirmek erişim düzeyi
Aksi takdirde aynı ada ancak farklı kapsam değişkenleri tanımlarken kullanmak özen beklenmeyen sonuçlara yol açabilir.Daha fazla bilgi için bkz. Bildirilmiş Öğelere Başvurular (Visual Basic).
Kapsam düzeyi
Programlama öğesi içinde bildirirken bölge kullanılabilir.Aynı bölgedeki tüm kod adını nitelemek olmadan öğesine başvuru yapabilirsiniz.
Bloğun kapsamına
Bir blok, başlatma ve aşağıdaki gibi bir bildirim deyimleri sonlandırma yanlarına ifadeler kümesidir:
DoveLoop
ForEach andNext
IfveEnd If
SelectveEnd Select
SyncLockveEnd SyncLock
TryveEnd Try
WhileveEnd While
WithveEnd With
Bir blok içinde bir değişken bildirirseniz, yalnızca o blok içinde kullanabilirsiniz.Aşağıdaki örnekte, bir tamsayı değişken kapsamını cube blok arasında If ve End If, ve artık başvurabilirsiniz cube yürütme zaman geçirmeden bloğu.
If n < 1291 Then
Dim cube As Integer
cube = n ^ 3
End If
[!NOT]
Değişken kapsamını bir blok sınırlı olsa bile, ömrü boyunca hala, yordamın tamamını.Engelleme işlemi sırasında birden çok kez girerseniz, her bloğu değişkeni önceki değerini korur.Böyle bir durumda beklenmedik sonuçları önlemek için blok blok başında değişkenlerini başlatmak akıllıca olur.
Yordam kapsamı
Bir yordamda bildirilen bir öğe, bu yordamın dışında kullanılamaz.Bildirim içeren yordamı kullanabilirsiniz.Bu düzeyde değişkenlerdir olarak da bilinen yerel değişken.Onlarla bildirmek Dim Deyimi (Visual Basic), ile veya olmadan Statik (Visual Basic) anahtar sözcüğü.
Yordam ve blok kapsamı çok yakından ilgili.Yordam içindeki ancak dışında herhangi bir blok konusu yordamdaki değişken bildirirseniz, değişken bloğu yordamın tamamını olduğu blok kapsamlı olarak düşünebilirsiniz.
[!NOT]
Tüm yerel öğeleri olmaları durumunda bile Static değişkenleri, göründükleri yordamı özel.Herhangi bir öğe kullanarak bildiremezsiniz Public (Visual Basic) bir yordam içinde anahtar sözcüğü.
Modülü kapsamı
Rahatlık, tek terim için Modül Düzeyi modüller, sınıflar ve yapılar için eşit olarak geçerlidir.Bu düzeydeki öğeleri herhangi bir yordam veya blok dışında ancak modülü, sınıf veya yapı içinde bildirim deyiminin koyarak bildirebilirsiniz.
Bildirim modülü düzeyinde değişiklik yaptığınızda, seçtiğiniz erişim düzeyi kapsamı belirler.Modül, sınıf ya da yapı içeren ad kapsamı da etkiler.
Öðeler bildirmek için Özel (Visual Basic) erişim düzeyi, bu modüldeki her yordam için ancak herhangi bir kod farklı bir modül içinde kullanılabilir.Dim Deyimi modül düzeyinde Varsayılanları Private , herhangi bir erişim düzeyi anahtar sözcükleri kullanmayın.Bununla birlikte, kapsamı ve erişim düzeyi daha belirgin kullanarak yapabileceğiniz Private bir anahtar sözcük Dim ifadesi.
Aşağıdaki örnekte, dize değişkenine modülünde tanımlanan tüm yordamlar başvurabilir strMsg.İkinci yordamı çağrılırken, dize değişkeni içeriğini görüntüler strMsg iletişim kutusunda.
' Put the following declaration at module level (not in any procedure).
Private strMsg As String
' Put the following Sub procedure in the same module.
Sub initializePrivateVariable()
strMsg = "This variable cannot be used outside this module."
End Sub
' Put the following Sub procedure in the same module.
Sub usePrivateVariable()
MsgBox(strMsg)
End Sub
Ad kapsamı
Modül düzeyi kullanarak sırasında öğenin bildirirseniz Arkadaş (Visual Basic) veya Public (Visual Basic) anahtar sözcüğünü, bu duruma öğesi bildirilmiş ad yerindeki tüm yordamlar tarafından kullanılabilir.Birleþtirdiðiniz dize değişkeni için aşağıdaki değişikliği ile strMsg bildiriminde ad alanı herhangi bir yerindeki koduna göre baþvurulabilir.
' Include this declaration at module level (not inside any procedure).
Public strMsg As String
Ad kapsamı iç içe ad alanlarını içerir.Bir ad alanı içinde bulunan bir öğe de o ad alanı içinde iç içe geçmiş herhangi bir ad alanı içinde kullanılabilir.
Projenizi herhangi içermiyorsa, Namespace Deyimis, aynı ad alanında ise projedeki her şey.Bu durumda, ad alanı kapsamı, projenin kapsamı olarak düşünülebilir.PublicModülü, sınıf veya yapı öğeleri kendi projesine başvuran herhangi bir proje için de kullanılabilir.
Kapsam Seçenekleri
Bir değişken bildirdiğinizde, aşağıdaki hususları kapsamı seçerken göz önünde tutmalısınız.
Yerel değişkenler avantajları
Yerel değişkenler aşağıdaki nedenlerden herhangi bir tür geçici hesaplama için iyi bir seçenektir şunlardır:
Ad çakışması kaçınma. Yerel değişken adlarını çakışan açık değildir.Örneğin, adlı bir değişken içeren birkaç farklı yordamlar oluşturma intTemp.Sürece her intTemp bildirildiği yerel bir değişken olarak her yordam yalnızca kendi sürümü tanır, intTemp.Herhangi bir yordam kendi yerel değerini değiştirebilir intTemp etkilemeden intTemp diğer yordamlar değişkenleri.
Bellek tüketim. Yalnızca kendi yordamı çalıştırırken yerel değişkenler bellek tüketir.Yordam çağırma kodunu döndürdüğünde kendi bellek serbest bırakılır.Bunun aksine, Shared (Visual Basic) ve Statik (Visual Basic) değişkenleri uygulamanızı çalıştıran duruncaya kadar bellek kaynaklarını tükettiği, bu nedenle bunları yalnızca gerekli olduğunda kullanın.Örnek değişkenleri bunları daha az yerel değişkenler etkilidir, ancak çok büyük olasılıkla daha verimli kılan kendi örneği var olmaya devam ederken bellek tüketen Shared veya Static değişkenleri.
Kapsamı en aza indirme
Genel olarak, her tür değişken veya sabit bildirirken mümkün olduğunca dar kapsamı sağlamak için uygulama programlama güzel (bloğun kapsamına ise dar).Bu bellek sağlar ve yanlışlıkla yanlış değişken başvuran kod olasılığını en aza indirir.Benzer şekilde, bir değişken olarak bildirmeniz gerekir Statik (Visual Basic) yalnızca bu yordam çağrıları arasında değerini korumak gerekli olduğunda.
Ayrıca bkz.
Görevler
Nasıl yapılır: Bir Değişkenin Kapsamını Denetleme (Visual Basic)
Kavramlar
Bildirilen Öğe Özellikleri (Visual Basic)
Visual Basic'de Erişim Düzeyleri