vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · Sonstiges   |   VB-Versionen: VB4, VB5, VB606.04.05
Argumenttyp ByRef unverträglich

Achten Sie bei der Deklaration von Variablen unbedingt darauf, diese einem expliziten Datentyp zuzuweisen!

Autor:   Michael WeinbergerBewertung:     [ Jetzt bewerten ]Views:  52.819 
ohne HomepageSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11kein Beispielprojekt 

Hatten Sie nicht auch schon einmal das Problem, dass VB den Quellcode mit der Fehlermeldung "Argumenttyp ByRef unverträglich" angemeckert hat?

Nachfolgend ein einfaches Beispiel:

Private Sub Form_Load()
  Dim s, s2 As String
  Dim b As Boolean
 
  s = "Gurke"
  s2 = "nsaft!"
  b = False
  Call n(s, s2, b)
 
  MsgBox (b)
  MsgBox (s)
End Sub
 
Private Sub n(s As String, s2 As String, b As Boolean)
  s = s & s2
  b = True
End Sub

Der Fehler tritt hierbei in folgender Zeile auf:

Call n(s, s2, b)

Was ist die Ursache für diesen Fehler?
Die Variable s wurde in der Zeile zusammen mit s2 vermeindlich als String deklariert:

Dim s, s2 As String

Somit sollte die Parameter-Übergabe an die Prozedur n aber doch verträglich sein.

Ändert man nun die Deklarationszeile von s wie folgt...

Dim s As String
Dim s2 As String

... funktioniert der Code.

Grund hierfür ist, dass VB alle Variablen, die nicht explizit mit einem bestimmten Datentyp deklariert wurden, als Variant deklariert!
D.h.: VB "liest" folgende Deklarationszeile...

Dim s, s2 As String

...wie folgt:

Dim s As Variant, s2 As String

Fazit:
Am besten man deklariert immer jede Variable in einer eigenen Zeile, so dass man erst gar nicht auf die Idee kommt, mehrere Variablen des gleichen Datentyps einfach durch Komma und ohne explizite Datentyp-Angabe zu deklarieren!
 

Dieser Tipp wurde bereits 52.819 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Aktuelle Diskussion anzeigen (2 Beiträge)

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel