[VB.Net]Array declaratie gaat fout

Pagina: 1
Acties:
  • 32 views sinds 30-01-2008

  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 25-05 19:30
Bij het declareren van de volgende array:
code:
1
Dim ipEndPIpAdresses(1) As IPAddress
zou je verwachten dat er een array met één ongeinitialiseerde waarde onstaat (index 0).
Dit is dus niet zo want na het uitvoeren van:
code:
1
MsgBox(ipEndPIpAdresses.Length)
krijg ik een waarde van 2 terug. Dit betekent dat de array ineens meerdere dimensies heeft, want:
code:
1
MsgBox(ipEndPIpAdresses.GetUpperBound(0))
geeft wel de waarde 1 (alle elementen uit dimensie 1)

Heeft iemand een verklaring voor dit gedrag, en zo ja wat kan je eraan doen.

  • faabman
  • Registratie: Januari 2001
  • Laatst online: 08-08-2024
mmmm, als ik de vbscript reference erbij pak dan vind ik dit

code:
1
Dim Names(9)       ' Declare an array with 10 elements


in dezelfde logica zou een dim var(1) dus een array met 2 elementen moet genereren

ik denk dat jij

dim var() AS IPdinges

moet doen om een nog in te vullen array te krijgen

[ Voor 27% gewijzigd door faabman op 23-03-2004 21:28 ]

Op zoek naar een baan als Coldfusion webdeveloper? Mail me!


  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 25-05 19:30
uit de hele oude VB.Net docs:
code:
1
Dim Ary(4) as Integer creates an array with 4 elements.

De array is dus adresseerbaar met 0,1,2,3.

Een niet geïnitialiseerde array maken is geen optie omdat ik de grote al weet en hem alleen moet vullen. Dat vullen gaat goed, maar er blijft altijd één element wat niet is gevuld. Bij het itereren krijg je dus een NullReferenceException.

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

JanTenHove schreef op 23 maart 2004 @ 21:22:
code:
1
Dim ipEndPIpAdresses(1) As IPAddress
Ik zie niet waarom je niet gewoon
code:
1
Dim ipEndPIpAdresses(0) As IPAddress
kan doen. Dat levert toch gewoon keurig een array met 1 element, nummer 0, op?


Journalism is printing what someone else does not want printed; everything else is public relations.


  • CodeIT
  • Registratie: Juni 2002
  • Laatst online: 25-05 19:30
OK, na veel verder zoeken heb ik het probleem gevonden, ik had toen ik dit maakte de BETA1 compiler. :(
Deze doet dus wat ik dacht. Met de andere compilers maakt ie dus een extra element aan.
(Note that in Beta 1 of the VB.NET compiler, the above statement would create 50 elements, from bounds 0 through 49.)
GROM

[ Voor 32% gewijzigd door CodeIT op 24-03-2004 00:49 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 16:31

.oisyn

Moderator Devschuur®

Demotivational Speaker

Mja, even beter de manual lezen dus ;)

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.

Pagina: 1

Dit topic is gesloten.