poste doch mal etwas mehr Code - was kommt vor den betreffenden Zeilen, was danach?
Kann es nicht doch damit zusammenhängen, daß Dir da eine String-Variable etwas vermurkst (dürfte natürlich bei If 1 = 1 nicht sein)?
Probiere das mal aus:
a = 1
b = "1"
if a < b then msgbox "Hallo" 'Kenne die .net-Syntax nicht
Diese Bedingung müßte wahr sein.
Irgendwie habe ich den Eindruck, daß ich bei VB6 bleiben sollte ...
So, nach langem hin und her: hier die Lösung!
Man solls ja nicht glauben, aber der Compiler von VB.Net ist in gewisserweise neunmalklug. Warum? Weil er scheinbar bei einer If-Bedingung die letzte Zeile von dem Code überprüft, der ausgeführt werden würde, wenn die Bedingung wahr ist. Was passiert also bei der Überprüfung in meinem Fall:
Nochmal der Code:
Dim mStr As String = "testtest1"
if 1 = 1 Then
mStr = mStr
End If
mStr = mStr - wird nicht ausgeführt, da es die letzte Zeile des "If-Codes" ist _UND_ es zu keiner Veränderung der Variable mStr oder im Speicher kommt.
Anders siehts in den beiden folgenden Fällen aus:
1.
Dim mStr As String = "testtest1"
if 1 = 1 Then
mStr = mStr 'Nur diese Zeile wird ausgeführt
mStr = mStr
End If
2.
Dim mStr As String = "testtest1"
if 1 = 1 Then
mStr = mStr 'Beide Zeilen Code werden ausgeführt
mStr = ""
End If
Man sollte sich schon fast bei M$ beschweren, dass der Compiler nicht das tut, was man ihm vorgibt zu tun!
Also, damit ist bewiesen, dass ich aus keinem Paralleluniversum komm ;).
So, aber trotzdem besten Dank an alle für die ganzen Antworten!
Gruß,
Jan