Static i as integer
Was wird ich sein, bevor ich einen Wert zuweisen.Worin initialisiert vb6 eine statische Ganzzahl?
Es scheint nur Null (0) zu sein, aber ich wollte das bestätigen.
Static i as integer
Was wird ich sein, bevor ich einen Wert zuweisen.Worin initialisiert vb6 eine statische Ganzzahl?
Es scheint nur Null (0) zu sein, aber ich wollte das bestätigen.
Variablen aller VB-Datentypen erhalten beim Start der Prozedur ihren jeweiligen Standardwert.
Dies schließt alle Zahlen auf Null initialisiert, und alle anderen Datentypen zu ihrem Geschmack von Null (vbNullString
für Streicher, nicht genau das gleiche wie eine leere Zeichenfolge ""
, False
für booleans, Empty
für Varianten und Nothing
für Objekte).
Die Debug-Anweisung '? vbNullstring = "" 'ergibt" True ". Also vielleicht nicht genau so wie eine leere Zeichenkette, in dem Sinne, dass eine Konstante nicht genau dasselbe ist wie ihr Wert. Aber für alle praktischen Zwecke würde ich sagen, dass sie genau gleich sind, da sie im Code austauschbar sind. – BobRodes
@BobRodes In VB '=' ergibt 'True' nicht nur dann, wenn die beiden Dinge gleich * sind, sondern auch, wenn sie zu etwas anderem gezwungen werden können, das als gleich betrachtet werden kann. Z.B. '? Falsch = 0' oder '? False = Empty "geben alle" True ", obwohl sie nicht gleich sind, sondern alle [Falsy] sind (https://developer.mozilla.org/en/docs/Glossary/Falsy). 'vbNullString' ist jedoch anders, weil es den gleichen Typ wie' '' '(' String') hat, und sie sind eigentlich das * selbe *, wenn Sie nur ihren Inhalt vergleichen wollen, aber manchmal [möchten Sie mehr wissen ] (http://stackoverflow.com/a/20909528/11683). – GSerg
Es kann einen Unterschied in den Ergebnissen geben, die Sie erhalten, wenn Sie 'vbNullString' vs.' "" an einige Methoden, Eigenschaften usw. übergeben. In einigen Fällen kann die Übergabe von 'vbNullString' sogar eine Nullzeiger-Ausnahme verursachen. – Bob77
Normalerweise in Visual Basic, wenn eine statische Variable innerhalb einer Funktion oder Sub-Prozedur deklariert wird, wird es auf 0 (numerische Datentyp) initialisiert oder eine leere Zeichenfolge "" (string-Datentyp), standardmäßig.
Also ja, Sie können sicher sein, dass der Standardwert Null ist.
hoffe, das hilft
VB6 Dokumentation auf MSDN, https://msdn.microsoft.com/en-us/library/aa243352(v=vs.60).aspx – jac
Gerade falls es nicht klar ist, 'Static' in VB6 hat eine ganz andere Bedeutung von seiner Bedeutung in .Net. Eine statische Variable ist eine lokale Variable, die ihren Wert zwischen Methodenaufrufen behält. Mit anderen Worten, es hat den Gültigkeitsbereich einer lokalen Variablen, aber die Lebensdauer einer Variablen auf Modulebene. – BobRodes
@BobRodes Es wird in genau der gleichen Weise (https://msdn.microsoft.com/en-us/library/z2cty7t8.aspx) in VB.NET verwendet. Sie denken wahrscheinlich [C#] (https://msdn.microsoft.com/en-us/library/98f28cdx.aspx), aber dann ist es nicht korrekt, die Verwendung von Schlüsselwörtern in zwei verschiedenen Sprachen zu vergleichen oder anstelle von ".NET" zu verwenden "C#". – GSerg
@GSerg Ganz richtig, ich stehe korrigiert. – BobRodes