Değere ve Başvuruya Göre Bağımsız Değişken Geçirme Arasındaki Farklar (Visual Basic)

Bir yordama bir veya daha fazla bağımsız değişken geçirdiğinizde, her bağımsız değişken çağıran koddaki temel bir programlama öğesine karşılık gelir. Bu temel öğenin değerini veya buna bir başvuru geçirebilirsiniz. Bu, geçiş mekanizması olarak bilinir.

Değere Göre Geçirme

Yordam tanımında karşılık gelen parametre için ByVal anahtar sözcüğünü belirterek bir bağımsız değişkeni değere göre geçirirsiniz. Bu geçiş mekanizmasını kullandığınızda, Visual Basic temel programlama öğesinin değerini yordamdaki yerel bir değişkene kopyalar. Yordam kodunun çağrı kodundaki temel öğeye erişimi yoktur.

Başvuruya Göre Geçirme

Yordam tanımında karşılık gelen parametre için ByRef anahtar sözcüğünü belirterek başvuru yoluyla bir bağımsız değişken geçirirsiniz. Bu geçiş mekanizmasını kullandığınızda, Visual Basic yordama çağrı kodundaki temel programlama öğesine doğrudan başvuru verir.

Geçirme Mekanizması ve Öğe Türü

Geçirme mekanizması seçimi, temel alınan öğe türünün sınıflandırmasıyla aynı değildir. Değere veya başvuruya göre geçiş, Visual Basic'in yordam koduna ne sağladığını ifade eder. Değer türü veya başvuru türü, bir programlama öğesinin bellekte nasıl depolandığını ifade eder.

Ancak, geçiş mekanizması ve öğe türü birbiriyle ilişkilidir. Başvuru türünün değeri, belleğin başka bir yerindeki verilere işaret eden bir işaretçidir. Bu, bir başvuru türünü değere göre geçirdiğinizde, temel alınan öğenin kendisine erişemese bile yordam kodunun temel alınan öğenin verilerine bir işaretçisi olduğu anlamına gelir. Örneğin, öğesi bir dizi değişkeniyse, yordam kodunun değişkenin kendisine erişimi yoktur, ancak dizi üyelerine erişebilir.

Değiştirme Yeteneği

Değiştirilemeyen bir öğeyi bağımsız değişken olarak geçirdiğinizde, yordam veya geçirilirse ByValByRefçağıran kodda bunu hiçbir zaman değiştiremez.

Değiştirilebilir bir öğe için, aşağıdaki tabloda öğe türü ile geçirme mekanizması arasındaki etkileşim özetlemektedir.

Öğe türü Geçirilen ByVal Geçirilen ByRef
Değer türü (yalnızca bir değer içerir) Yordam değişkeni veya üyelerini değiştiremez. Yordam değişkeni ve üyelerini değiştirebilir.
Başvuru türü (bir sınıf veya yapı örneğine işaretçi içerir) Yordam değişkeni değiştiremez ancak işaret ettiği örneğin üyelerini değiştirebilir. Yordam, değişkeni ve işaret ettiği örneğin üyelerini değiştirebilir.

Ayrıca bkz.