Nasıl yapılır: Bir Yordam Bağımsız Değişkeninin Değerini Değiştirme (Visual Basic)
Bir yordamı çağırdığınızda, sağladığınız her bağımsız değişken yordamda tanımlanan parametrelerden birine karşılık gelir. Bazı durumlarda yordam kodu, çağıran koddaki bir bağımsız değişkenin temel alınan değerini değiştirebilir. Diğer durumlarda, yordam bağımsız değişkenin yalnızca yerel kopyasını değiştirebilir.
Yordamı çağırdığınızda, Visual Basic ByVal geçirilen her bağımsız değişkenin yerel bir kopyasını oluşturur. ByRef ile geçirilen her bağımsız değişken için Visual Basic, yordam koduna, çağıran koddaki bağımsız değişkenin temel aldığı programlama öğesine doğrudan başvuru verir.
Çağıran koddaki temel öğe değiştirilebilir bir öğeyse ve bağımsız değişkeni geçirilirse ByRef
, yordam kodu, öğesinin çağıran koddaki değerini değiştirmek için doğrudan başvuruyu kullanabilir.
Temel Alınan Değeri Değiştirme
Çağıran koddaki bir yordam bağımsız değişkeninin temel değerini değiştirmek için
Yordam bildiriminde bağımsız değişkene karşılık gelen parametre için ByRef değerini belirtin.
Çağıran kodda, bağımsız değişken olarak değiştirilebilir bir programlama öğesi geçirin.
Çağıran kodda bağımsız değişkeni bağımsız değişken listesinde parantez içine alma.
Yordam kodunda, çağıran koddaki temel öğeye bir değer atamak için parametre adını kullanın.
Bir gösterim için daha aşağı doğru örne bakın.
Yerel Kopyaları Değiştirme
Çağıran koddaki temel öğe değiştirilemeyen bir öğeyse veya bağımsız değişken geçirildiyse ByVal
, yordam çağıran koddaki değerini değiştiremez. Ancak, yordam böyle bir bağımsız değişkenin yerel kopyasını değiştirebilir.
Yordam kodundaki bir yordam bağımsız değişkeninin kopyasını değiştirmek için
Yordam bildiriminde bağımsız değişkene karşılık gelen parametre için ByVal değerini belirtin.
-veya-
Çağıran kodda bağımsız değişkeni bağımsız değişken listesinde parantez içine alın. Bu, ilgili parametre belirtse bile Visual Basic'i bağımsız değişkeni değere göre geçirmeye zorlar
ByRef
.Yordam kodunda parametre adını kullanarak bağımsız değişkenin yerel kopyasına bir değer atayın. Çağıran koddaki temel değer değiştirilmez.
Ö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.
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(ByRef 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, replace
geçirme mekanizması olsa ByVal
bile üyelerini değiştirebilir.
İkinci MsgBox
çağrıda "Değiştirildikten sonra(n): 101, 201, 301" görüntülenir. n
geçirildiğindenByRef
, replace
çağıran koddaki değişkeni n
değiştirebilir ve buna yeni bir dizi atayabilir. Bir n
başvuru türü olduğundan, replace
üyelerini de değiştirebilir.
Yordamın çağıran kodda değişkenin kendisini değiştirmesini engelleyebilirsiniz. Bkz . Nasıl yapılır: Yordam Bağımsız Değişkenlerini Değer Değişikliklerine Karşı Koruma.
Kodu derleme
Bir değişkeni başvuruya göre geçirirken, bu mekanizmayı belirtmek için anahtar sözcüğünü ByRef
kullanmanız gerekir.
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.
.NET Framework Güvenliği
Bir yordamın, çağıran koddaki bir bağımsız değişkenin değerini değiştirmesine izin vermenin her zaman olası bir riski vardır. Bu değerin değiştirilmesini beklediğinizi ve kullanmadan önce geçerliliğini denetlemeye hazır olduğunuzdan emin olun.
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şkenini Değer Değişikliklerine Karşı Koruma
- 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