Op woensdag 24 juli 2002 12:22 schreef RickN het volgende:
[..]
Wow, als dit echt iets nuttigs doet is VB nog slechter dan ik al dacht, maar ik denk dat je ergens een foutje hebt gemaakt....
Nope, het werkt echt

Ik heb het trouwens niet zelf verzonnen hoor, maar Google doet wonderen
[edit]
Als reactie op RickN, nog even een uitleg wat er precies gebeurt (het is vrij logisch als je erover nadenkt

)
De Debug routines zijn in een executable niet aanwezig. Dus als je het als exe draait is InIDE eigenlijk een lege functie, en retourneert dus de default Boolean waarde False.
Als je in de IDE draait moet InIDE True teruggeven. Iedere functie in VB heeft altijd een lokale variabele met de naam van de functie, waar je de return waarde naartoe kunt schrijven. Maar een Assert aanroep krijgt een expressie mee, geen statement. Je kan dus niet direct
Debug.Assert InIDE = True doen, want dan controleert hij alleen maar of InIDE True is (wat niet het geval is en dus een break zou opleveren).
Daarom de extra hulpfunctie TestIDE. We geven de lokale variabele InIDE mee, die in TestIDE op True wordt gezet (de code werkt dus niet meer als je deze ByVal meegeeft). De return value van TestIDE blijft False; daarom de
Not in Debug.Assert, anders zou VB breaken op dat punt. (In plaats van die Not zou je ook TestIDE True kunnen laten retourneren, maar dat is weer een extra regel

)
In ieder geval staat InIDE nu op True en zal de functie InIDE dus True teruggeven
Tot zover de VB analyse