Aracılığıyla paylaş


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 Ömür

Visual Basic'de Erişim Düzeyleri

Bildirilmiş Öğelere Başvurular (Visual Basic)

Visual Basic'de Değişken Bildirimi