Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: By Ref i By Val ???????????
anonim




Typ: Nie zarejestrowany
By Ref i By Val ???????????

Nie mogę zrozumieć. Czytałam w teori ale tam jest jakoś mgliście, czy mógłby mi ktoś bardziej po ludzku, nawet ....łopatologicznie, jestem od niedawna w VB, więc proszę się postarać, naprawdę, będę wdzięczna. Dzięki

17-04-2005 10:24
  
Kloss-J23




Typ: neutral
Postów: 4
Zarejestrowany: Feb 2005

By Ref - przekazywanie przez referencję. W tym przypadku przekazujesz adres parametru. Z tego powodu możesz modyfikować przekazaną zmienną. By Val (przez wartość) tworzysz kopię tej zmiennej i przekazujesz tę kopię, nie zmienną. Dzięki temu pozostaje ona nienaruszona, pomimo, że parametr jest modyfikowany wewnątrz funkcji. Np. funkcja
CopyMemory ByVal adres1, ByVal adres2, 5
kopiuje 5 bajtów począwszy od adresu adres1 i umieszcza pod adres2. W trakcie działania zmienia ona wartości parametrów adres1 i adres2. Gdyby nie zostały przekazane przez wartość, to po wykonaniu tej funkcji zmieniłyby się ich wartości.

17-04-2005 13:27
Pokaż profil Kloss-J23  Wyślij email do Kloss-J23   
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

Dim zmiennaByVal As String
Dim zmiennaByRef As String

Private Sub Blabla(ByRef a As String, ByVal b As String)
a = "zmieniłeś wartosć"
b = "zmieniłeś wartosć"
End Sub

Private Sub Command1_Click()
Call Blabla(zmiennaByRef, zmiennaByVal)
MsgBox zmiennaByRef & vbCrLf & zmiennaByVal
End Sub

Private Sub Form_Load()
zmiennaByVal = "zmienna 1"
zmiennaByRef = "zmienna 2"
End Sub

Przyjrzyj się temu prostemu przykładowi


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

19-04-2005 13:05
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Wszystkich odpowiedzi: 2 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1