Aracılığıyla paylaş


Visual Basic'de Ömür

Bildirilen bir öğenin ömrü , kullanılabilir olduğu süredir. Değişkenler, ömrü olan tek öğelerdir. Bu amaçla, derleyici yordam parametrelerini ele alır ve işlev değişkenlerin özel durumları olarak döndürür. Değişkenin ömrü, bir değeri tutabileceği süreyi temsil eder. Değeri yaşam süresi boyunca değişebilir, ancak her zaman bir değer tutar.

Farklı Yaşam Süreleri

Bir üye değişkeni (modül düzeyinde, herhangi bir yordamın dışında bildirilir) genellikle bildirildiği öğeyle aynı yaşam süresine sahiptir. Bir sınıfta veya yapıda bildirilen paylaşılmayan bir değişken, bildirildiği sınıfın veya yapının her örneği için ayrı bir kopya olarak bulunur. Bu tür değişkenlerin her birinin ömrü örneğiyle aynı olur. Ancak, bir Shared değişkenin yalnızca tek bir ömrü vardır ve bu süre uygulamanızın çalıştığı süre boyunca sürer.

Yerel değişken (bir yordam içinde bildirilir) yalnızca bildirildiği yordam çalışırken bulunur. Bu, bu yordamın parametreleri ve tüm işlev dönüşleri için de geçerlidir. Ancak, bu yordam diğer yordamları çağırırsa, çağrılan yordamlar çalışırken yerel değişkenler değerlerini korur.

Ömrün Başlangıcı

Yerel değişkenin ömrü, denetim bildirildiği yordama girdiğinde başlar. Her yerel değişken, yordam çalışmaya başlar başlamaz veri türü için varsayılan değere başlatılır. Yordam, ilk değerleri belirten bir Dim deyimle karşılaştığında, kodunuz bunlara başka değerler atamış olsa bile bu değişkenleri bu değerlere ayarlar.

Bir yapı değişkeninin her üyesi ayrı bir değişkenmiş gibi başlatılır. Benzer şekilde, bir dizi değişkeninin her öğesi ayrı ayrı başlatılır.

Bir yordamın içindeki bir blok içinde bildirilen değişkenler (döngü gibi For ) yordama girişte başlatılır. Bu başlatmalar, kodunuzun bloğu yürütmesine bakılmaksızın geçerlilik kazanır.

Kullanım Ömrü Sonu

Bir yordam sonlandırıldığında, yerel değişkenlerinin değerleri korunmaz ve Visual Basic belleklerini geri alır. Yordamı bir sonraki çağırışınızda, tüm yerel değişkenleri yeniden oluşturulur ve yeniden başlatılır.

Bir sınıfın veya yapının örneği sonlandırıldığında, paylaşılmayan değişkenleri belleklerini ve değerlerini kaybeder. Sınıfın veya yapının her yeni örneği, paylaşılmayan değişkenlerini oluşturur ve yeniden başlatır. Ancak, Shared uygulamanız çalışmayı durdurana kadar değişkenler korunur.

Yaşam Süresinin Uzatılması

Anahtar sözcüğüyle Static bir yerel değişken bildirirseniz, yaşam süresi yordamının yürütme süresinden daha uzun olur. Aşağıdaki tabloda, yordam bildiriminin bir Static değişkenin ne kadar süreyle var olduğunu nasıl belirlediğini gösterir.

Yordam konumu ve paylaşımı Statik değişken ömrü başlar Statik değişken yaşam süresi sonu
Modülde (varsayılan olarak paylaşılan) Yordam ilk kez çağrılır Uygulamanız çalışmayı durdurduğunda
Bir sınıfta ( Shared yordam örnek üyesi değildir) Yordam ilk kez belirli bir örnekte veya sınıf veya yapı adının kendisinde çağrılır Uygulamanız çalışmayı durdurduğunda
Sınıfın örneğinde değil Shared (yordam bir örnek üyesidir) Yordam belirli bir örnekte ilk kez çağrılır Örnek çöp toplama için serbest bırakıldığında (GC)

Aynı Ada Ait Statik Değişkenler

Birden fazla yordamda aynı ada sahip statik değişkenler bildirebilirsiniz. Bunu yaparsanız, Visual Basic derleyicisi bu tür değişkenleri ayrı bir öğe olarak değerlendirir. Bu değişkenlerden birinin başlatılması diğerlerinin değerlerini etkilemez. Aynı durum, bir dizi aşırı yükleme içeren bir yordam tanımlar ve her aşırı yüklemede aynı ada sahip bir statik değişken bildirirseniz de geçerlidir.

Statik Değişkenler için Öğeleri İçeren

Statik bir yerel değişkeni bir sınıfın içinde, yani bu sınıftaki bir yordamın içinde bildirebilirsiniz. Ancak, yapı içindeki statik bir yerel değişkeni yapı üyesi olarak veya bu yapı içindeki bir yordamın yerel değişkeni olarak bildiremezsiniz.

Örnek

Açıklama

Aşağıdaki örnekte Static anahtar sözcüğü ile bir değişken bildirmektedir. (Dim Deyimi gibi bir değiştirici Statickullandığında anahtar sözcüğüne Dim ihtiyacınız olmadığını unutmayın.)

Kod

Function runningTotal(ByVal num As Integer) As Integer
    Static applesSold As Integer
    applesSold = applesSold + num
    Return applesSold
End Function

Açıklamalar

Yukarıdaki örnekte, yordam runningTotal çağıran koda döndükten sonra değişken applesSold varolmaya devam eder. Bir sonraki çağrıda runningTotal , applesSold daha önce hesaplanmış değerini korur.

kullanılmadan Staticbildirilmiş olsaydıapplesSold, önceki birikmiş değerler çağrısı runningTotalarasında korunmazdı. Bir sonraki çağrıda runningTotal yeniden applesSold oluşturulur ve 0 olarak başlatılırdı ve runningTotal çağrılan değerin aynısını döndürürdü.

Kodu derleme

Statik yerel değişkenin değerini bildiriminin bir parçası olarak başlatabilirsiniz. Bir diziyi olarak Staticbildirirseniz, derecesini (boyut sayısı), her boyutun uzunluğunu ve tek tek öğelerin değerlerini başlatabilirsiniz.

Güvenlik

Yukarıdaki örnekte, modül düzeyinde bildirimde bulunabilir ve applesSold aynı yaşam süresine sahip olabilirsiniz. Ancak bir değişkenin kapsamını bu şekilde değiştirdiyseniz, yordamın artık buna özel erişimi olmaz. Diğer yordamlar değerine erişip applesSold değerini değiştirebildiğinden, çalışan toplam güvenilir olmayabilir ve kodun korunması daha zor olabilir.

Ayrıca bkz.