بسم الله الرحمن الرحيم
اخواني واخواتي المبرمجين .... في الحقيقة عندي مشكلة في كود برنامج اقوم بصنعه وقد صادفتني مشكلة في كود وهو:
عندما اقوم بالاعلان عن مصفوفة من string واقوم بكتابة ثلاثة procedures وتكون البرامترات كلها byval واقوم بوضع احد البرامترات هو مصفوفة من نفس النوع للمصفوفة التي قمت بالاعلان عيها في class
السؤال هو byval تقوم بتمرير براميتر من دون تغيير قيمته اي لا يرجع قيمته الى الsub الذي قام باستدعائه ولكن عندما امرر هذه المصفوفة تتغير قيمته حتى لو كان ليس public لكل الclass فما هو السبب؟
لقد قمت بكتابة كود تجريبي لكم لكي تتبين لكم المشكلة
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = ""
A()
End Sub
Sub A()
Dim ch(2, 2) As String
B(ch)
For x As Integer = 0 To 2
For y As Integer = 0 To 2
Label1.Text &= ch(x, y) & vbNewLine
Next
Next
End Sub
Sub B(ByVal ch(,) As String)
C(ch)
End Sub
Sub C(ByVal a(,) As String)
a(0, 0) = "A"
End Sub
End Classقوموا بتجربة الكود وستعرفون ماذا اقصد