Aracılığıyla paylaş


Nasıl yapılır: (Visual Basic) bir yordam değişken değerini değiştirin

Bir yordam çağrısı sırasında sağladığınız her bağımsız yordamı tanımlı parametreleri birine karşılık gelir.Bazı durumlarda, alttaki çağıran kodun bir bağımsız değişken değeri yordam kodunu değiştirebilirsiniz.Diğer durumlarda, bir bağımsız değişken yalnızca kendi yerel kopyasını yordamını değiştirebilirsiniz.

Yordam çağrısı sırasında Visual Basic geçirilen her bağımsız değişkeni yerel bir kopyasını oluşturur ByVal (Visual Basic).Her bağımsız değişken için ByRef (Visual Basic), Visual Basic yordam kodunu çağıran kodun değişkeninde temel programlama öğeye doğrudan bir başvuru verir.

Temel öğe arama kodu değiştirilebilir bir öğedir ve bağımsız değişken geçirildi, ByRef, yordam kodunu doğrudan başvuru, çağıran kodun öğenin değerini değiştirmek için kullanabilirsiniz.

Ona temel olan değeri değiştirme

Alttaki çağıran kodun bir yordam bağımsız değişkeni değerini değiştirmek için

  1. Yordam bildiriminde belirtmemeniz ByRef (Visual Basic) değişkenine uygun parametresi için.

  2. Arama kodu değiştirilebilir bir programlama öğesine argüman olarak.

  3. Bağımsız değişken listesindeki parantez içinde arama kodu içine almayın.

  4. Yordam kodunda parametre adı çağıran kodun temel öğe için bir değer atamak için kullanın.

Örnek görmek için bir örnek daha aşağı.

Yerel kopyaları değiştirme

Nonmodifiable öğesini çağıran kodun temel öğe olup olmadığını veya bağımsız değişken verilmezse, ByVal, yordamı çağıran kod değeri değiştiremezsiniz.Ancak, yordam gibi bir bağımsız değişken, kendi yerel kopyasını değiştirebilirsiniz.

Yordam değişken yordamı kod kopyasını değiştirmek için

  1. Yordam bildiriminde belirtmemeniz ByVal (Visual Basic) değişkenine uygun parametresi için.

    -veya-

    Bağımsız değişken listesindeki parantez içinde arama kodunu alın.Bu zorlar Visual Basic dahi karşılık gelen parametrenin değerine göre argüman için ByRef.

  2. Yordam kodunda parametre adı bağımsız değişkeni yerel kopyasını bir değer atamak için kullanın.Çağıran kodun içinde ona temel olan değeri değişmez.

Örnek

Aşağıdaki örnek, bir dizi değişkeni olması ve işletmek iki yordam üzerinde öğelerini gösterir.increase Yordam yalnızca biri her öğe ekler.replace Yordam parametresi yeni bir dizi atar a() ve her öğe için bir tane 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ısı görüntüler "increase(n) sonra: 11, 21, 31, 41".Çünkü dizi n bir başvuru türü olan replace geçişini mekanizması olmasına karşın kendi üyeleri değiştirebilir ByVal.

İkinci MsgBox çağrısı görüntüler "replace(n) sonra: 101, 201, 301".Çünkü n geçirilen ByRef, replace değişkeni değiştirebilirsiniz n çağıran kodun ve ata kendisine yeni bir dizi.Çünkü n bir başvuru türü olan replace üyeleri de değiştirebilirsiniz.

Yordam değişken kendisini çağıran kodun değiştirmesini engelleyebilirsiniz.Bkz: Nasıl yapılır: yordam değişken değeri değiştiğinde (Visual Basic) karşı koruma

Kod Derleniyor

Başvuruya göre değişken geçirdiğinizde kullanmanız gerekir ByRef bu mekanizma belirtmek için anahtar sözcük.

Varsayılan olarak Visual Basic bağımsız değişken değeri geçirmeye çalışır.Ancak, ya da içerecek şekilde uygulama programlama iyi ByVal (Visual Basic) veya ByRef (Visual Basic) anahtar sözcüğüyle bildirilen her parametre.Bu, kodunuzun daha kolay okunmasını sağlar.

Güvenlik

Her zaman vardır olası risk altındaki çağıran kodun bir bağımsız değişken değeri değiştirmek bir yordam sağlayarak.Bu değerin değiştirilmesi ve kullanmadan önce geçerliliğini denetlemek için hazırlanması için beklediğiniz emin olun.

Ayrıca bkz.

Görevler

Nasıl yapılır: Pass bağımsız bir yordam (Visual Basic)

Nasıl yapılır: yordam değişken değeri değiştiğinde (Visual Basic) karşı koruma

Nasıl yapılır: (Visual Basic) değeriyle geçirilecek bağımsız değişken zorla

Kavramlar

Visual Basic'teki yordamlar

Yordam parametreleri ve bağımsız değişkenler (Visual Basic)

Argümanları değeri ve başvuru (Visual Basic)

Değiştirilebilir ve Nonmodifiable bağımsız değişkenleri (Visual Basic) arasındaki farklar

Bağımsız değişken değeri ve başvuru (Visual Basic) tarafından geçirerek arasındaki farklar

Argümanları konumu ve adı (Visual Basic)

Değer türleri ile başvuru türleri