Değer tipleri değişkenleri içerdikleri verinin bir kopyasını oluşturarak yalnızca kendisine gönderilen veriyi saklarlar. Diğer değişkenleri etkilemezler. ByVal ifadesi ile belirtilirler.

Referans tipi değişkenler ise direkt olarak veriyi saklamak yerine verinin hafızada saklanacağı adresi saklarlar. Dolayısı ile aynı hafıza bölgesine adresleme yapan diğer referans değişkenlerini etkileyebilirler. ByRef ifadesi ile belirtilirler.

 

Örnek bir uygulama yapalım;

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim mesaj As String

 

        mesaj = "Ana Program tarafından oluşturulan mesaj"

 

        MsgBox(mesaj)

 

        mesajyaz(mesaj)

 

        MsgBox(mesaj)

    End Sub

 

    Private Function mesajyaz(ByVal mesaj As String)

        mesaj = "Alt Program tarafından oluşturulan mesaj"

    End Function

End Class

 

Örneğimiz çalıştırdığımızda her iki defasında da “Ana Program tarafından oluşturulan mesaj” mesajını görüntülemektedir. Çünkü fonksiyonumuzu değer tipinde tanımladığımız için mesaj değişkeninin içeriğinde yapılan değişiklik ana programdaki mesaj değişkeninin içeriğini etkilememektedir.

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim mesaj As String

 

        mesaj = "Ana Program tarafından oluşturulan mesaj"

 

        MsgBox(mesaj)

 

        mesajyaz(mesaj)

 

        MsgBox(mesaj)

    End Sub

 

    Private Function mesajyaz(ByRef mesaj As String)

        mesaj = "Alt Program tarafından oluşturulan mesaj"

    End Function

End Class

 

Alt programda tanımladığımız mesaj değişkeninin Byref ile referans tipte tanımlayıp kodumuzu çalıştırdığımızda ise önce “Ana Program tarafından oluşturulan mesaj” mesajını daha sonra ise “Alt Program tarafından oluşturulan mesaj” mesajını görüntülemektedir. Çünkü fonksiyonumuzu referans tipinde tanımladığımız için mesaj değişkeninin içeriğinde yapılan değişiklik ana programdaki mesaj değişkeninin içeriğini de etkilemekte ve yeni içerik görüntülenmektedir.

Proje dosyalarının linki:

http://www.volkanaktas.com/PrgDosya/vbnet/Byval_Byref.rar

Etiketler : VB.Net
Kategoriler : VB.Net
Yorumlar : 0 Yorum Yorum Yaz

Yorumlar

Yorum Eklenmemiş...

Yorum Yaz

Adınız: *
E-Mail Adresiniz: *
Web Sitesi:
Yorum: *
Güvenlik Kodu: *
 
Arama
  Ara
Takvim
<September 2010>
SMTWTFS
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789
Tag Bulutu