Nasıl yapılır: Bir Yordam Bağımsız Değişkenini Değer Değişikliklerine Karşı Koruma (Visual Basic)
Bir yordam bir parametreyi ByRef olarak bildirirse, Visual Basic yordam koduna çağıran koddaki bağımsız değişkenin temel aldığı programlama öğesine doğrudan başvuru verir. Bu, yordamın çağıran koddaki bağımsız değişkenin temel alınan değerini değiştirmesine izin verir. Bazı durumlarda, çağıran kod bu tür bir değişikliğe karşı korumak isteyebilir.
Yordamda ilgili ByVal parametresini bildirerek bağımsız değişkeni değişiklikten her zaman koruyabilirsiniz. Belirli bir bağımsız değişkeni bazı durumlarda değiştirebilmek ancak bazı durumlarda değiştirebilmek istemiyorsanız, bunu ByRef
bildirebilir ve her çağrıda geçiş mekanizmasını çağıran kodun belirlemesine izin verilmektedir. Bunu, değere göre geçirmek için karşılık gelen bağımsız değişkeni parantez içine alarak veya başvuruya göre geçirmek için parantez içine almayarak yapar. Daha fazla bilgi için bkz . Nasıl yapılır: Bağımsız Değişkeni Değere Göre Geçirilmeye Zorlama.
Örnek
Aşağıdaki örnekte bir dizi değişkeni alan ve öğeleri üzerinde çalışan iki yordam gösterilmektedir. Yordam increase
, her öğeye bir tane ekler. yordam parametresine replace
a()
yeni bir dizi atar ve ardından her öğeye bir dizi ekler. Ancak, yeniden atama, çağrı kodundaki temel dizi değişkenini etkilemez.
Public Sub increase(ByVal a() As Long)
For j As Integer = 0 To UBound(a)
a(j) = a(j) + 1
Next j
End Sub
Public Sub replace(ByVal a() As Long)
Dim k() As Long = {100, 200, 300}
a = k
For j As Integer = 0 To UBound(a)
a(j) = a(j) + 1
Next j
End Sub
Dim n() As Long = {10, 20, 30, 40}
Call increase(n)
MsgBox("After increase(n): " & CStr(n(0)) & ", " &
CStr(n(1)) & ", " & CStr(n(2)) & ", " & CStr(n(3)))
Call replace(n)
MsgBox("After replace(n): " & CStr(n(0)) & ", " &
CStr(n(1)) & ", " & CStr(n(2)) & ", " & CStr(n(3)))
İlk MsgBox
çağrıda "Artış sonrası(n): 11, 21, 31, 41" görüntülenir. Dizi n
bir başvuru türü olduğundan, increase
geçirme mekanizması olsa ByVal
bile üyelerini değiştirebilir.
İkinci MsgBox
çağrıda "Değiştirildikten sonra(n): 11, 21, 31, 41" görüntülenir. n
geçirildiğindenByVal
, replace
koda yeni bir dizi atayarak çağıran koddaki değişkeni n
değiştiremez. Yeni dizi örneğini k
oluşturup yerel değişkenine a
atadığındareplace
, çağıran kod tarafından geçirilen başvuruyu n
kaybeder. üyelerini a
değiştirdiğinde yalnızca yerel dizi k
etkilenir. Bu nedenle, replace
çağıran koddaki dizi n
değerlerini artırmaz.
Kodu derleme
Visual Basic'te varsayılan değer, bağımsız değişkenleri değere göre geçirmektir. Ancak, bildirilen her parametreye ByVal veya ByRef anahtar sözcüğünü eklemek iyi bir programlama uygulamasıdır. Bu, kodunuzun okunmasını kolaylaştırır.
Ayrıca bkz.
- Yordamlar
- Yordam Parametreleri ve Bağımsız Değişkenleri
- Nasıl yapılır: Bir Yordama Bağımsız Değişkenler Geçirme
- Bağımsız Değişkenleri Değere ve Başvuruya Göre Geçirme
- Değiştirilebilir ve Değiştirilemez Bağımsız Değişkenler Arasındaki Farklar
- Değere ve Başvuruya Göre Bağımsız Değişken Geçirme Arasındaki Farklar
- Nasıl yapılır: Bir Yordam Bağımsız Değişkeninin Değerini Değiştirme
- Nasıl yapılır: Bağımsız Değişkeni Değere Göre Geçirilecek Şekilde Zorlama
- Bağımsız Değişkenleri Konuma ve Ada Göre Geçirme
- Değer Türleri ve Başvuru Türleri
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin