2012-04-06 6 views
5

Ich bin durch einige alte VB6-Code und in vielen Formen gehen, in denen ich Erklärung Aussagen wie -Haben deklarierte Felder in VB6 Standardwerte?

PEC_NUM_ENT(1) As Byte 
EC_MORE_RW_EXIST(0) As Byte 
EC_CODE_IND(0) As Byte 
EC_DATA(7) As PRXDetail 

Meine Frage ist, haben diese Felder Standardwerte haben? Wenn ja, was sind die Werte? Vielen Dank.

+0

http://stackoverflow.com/questions/4284216 sein könnte (kein Duplikat) – MarkJ

+0

Die Idee der Variablen „Felder“ in VB Aufruf ist ein bisschen ... seltsam. – Bob77

+0

@BobRiemersma Beziehen sich Felder nur auf jene "Variablen", die zu Klassen gehören? – CodeBlue

Antwort

11

Ja. Numerische und Datumstypen sind standardmäßig auf 0, Zeichenfolgen auf eine leere Zeichenfolge (d. H. ""), Boolean auf False und Variante auf EMPTY festgelegt.

+0

Vielen Dank für Ihre Antwort. Ist leer wie "null" in Java. In diesem Fall wird EC_DATA zunächst leer sein? – CodeBlue

+2

Empty ist nicht dasselbe wie null. Wie ich mich erinnere, ist eine Variante im Grunde eine untypisierte Eingabe, bis sie verwendet wird - also wenn sie zuerst als String verwendet wird, dann ist Empty "" usw. Ich habe EC_DATA verpasst, was ein Array von PRXDetail ist - anscheinend ein benutzerdefinierter Typ Ich bin mir nicht sicher, aber vermute, dass jedes Feld in der UDT die Standardwerte haben würde. Ich bin nicht sicher, wie VB6 UDT unter der Haube behandelt, aber ich vermute, dass jedes Element des Arrays ein Speicherort ist. Die Werte würden durch EC_DATA (0) .FieldName usw. erhalten. – mdoyle

+0

+1 Ja, wenn eine leere Variante in einem Ausdruck verwendet wird, wird sie abhängig vom Ausdruck entweder als Wert 0 oder als leere Zeichenfolge ausgewertet. – MarkJ

7

Vom VB6 documentation

Wenn Variablen initialisiert werden, wird eine numerische Variable auf 0 initialisiert wird, eine Zeichenfolge variabler Länge ist initialisiert auf eine Zeichenfolge der Länge Null („“), und ein Zeichenfolge fester Länge ist mit Nullen gefüllt. Variantenvariablen werden auf Leer initialisiert. Jedes Element einer benutzerdefinierten Variablen ist initialisiert, als wäre es eine separate Variable.

PRXDETAIL sieht aus wie es ein benutzerdefinierter Typ Verwandte Frage