ProgramlamaVisual Basic Desktop/Backend Geliştirici

Modül (Module) değişkenleri ile çalışma sürecini açıklayın. Küresel değişkenlere göre özellikleri nelerdir ve kullanırken dikkat edilmesi gereken noktalar nelerdir?

Hintsage yapay zeka asistanı ile mülakatları geçin

Cevap.

Visual Basic'te modül (Module), projedeki tüm değişkenleri ve prosedürleri (doğru erişim belirleyicileri ile) beyan etmenizi sağlar. Modül içinde prosedürlerin dışında beyan edilen değişkenler, onun alanları haline gelir; görünürlük alanı belirleyiciye (Private/Friend/Public) bağlıdır ve ömürleri uygulamanın çalışma süresi boyunca sürer.

Modül değişkenlerinin ana özellikleri:

  • Projenin tamamında (veya Friend ile derlemede) görünür
  • Program başladığında bir kez başlatılır
  • Bu modüldeki prosedürlerin/fonksiyonların çağrılmaları arasında durumlarını saklar

Küresel değişkenlerden (örneğin diğer dillerde veya eski VB6'da) farklı olarak, modül değişkenleri açıkça Public olarak beyan edilmediği sürece derlemin dışına erişilemez.

Örnek:

Module Globals Public Counter As Integer Sub Increment() Counter += 1 End Sub End Module ' Projenin her yerinden Counter'a erişim

Kandırmaca soru.

Soru: Private belirleyicisi ile beyan edilen modül değişkenine hangi erişim olacaktır? Diğer modüllerden erişilebilir mi?

Cevap: Hayır, Private belirleyicisi ile beyan edilen değişken yalnızca bu modül içinde erişilebilir – diğer modüller veya sınıflar tarafından erişilemez.

Module Data Private x As Integer End Module ' Module Other x'i göremez

Konunun inceliklerini bilmemekten kaynaklanan gerçek hata örnekleri.


Hikaye

Hesaplama servisinin geliştirilmesi sırasında ara sonuçların tümü modül değişkenlerinde saklandı. Geliştiricilerden biri, verilerin çağrılar arasında "sıfırlanacağını" varsayıyordu, ancak durum (Application Scope) saklandı. Bu, hizmetin çok kullanıcılı olarak paralel kullanımı sırasında hatalara neden oldu. Çözüm: Yerel değişkenler kullanmak ve modüllerde durum saklamaktan kaçınmak, eğer iş parçacığı güvenliği gerekiyorsa.


Hikaye

Çok dosyalı bir projede, modül değişkeni Public yerine Friend belirleyicisi ile beyan edildi. Bunun, çözümdeki tüm ilişkili projelerden erişilebilir olacağı bekleniyordu, ancak yalnızca bir derleme içinde görünür olduğu ortaya çıktı, bu da entegrasyon aşamasında beklenmeyen erişim hatalarına yol açtı.


Hikaye

Kod optimizasyonu sonrası süreçteki mantıksal bayraklar çalışmamaya başladı, çünkü sınıfın yapıcı fonksiyonuna, statik log bayrağının tanımlandığı modül geçmedi. Sonuç olarak, eski değer kullanıldı, bu da sistemin eski verilerle çalışmasına neden oldu ve modül değişkeninin durum değişikliği izlenmesi zorluğundan dolayı hata uzun süre araştırıldı.