Avatar billede skildpadden Nybegynder
23. november 2007 - 09:53 Der er 8 kommentarer og
1 løsning

Hvad bruges Dim til?

I mange scripts ser jeg nedenstående:

Dim strEtEllerAndet
strEtEllerAndet = "NogetTredje"

Hvad bruger man "Dim" til og er det vigtigt at have det med?
Avatar billede smitten1 Nybegynder
23. november 2007 - 10:27 #1
Nogle programmører foretrækker at køre med Option Explicit (skrives som det første i scriptet). Så SKAL man Dimme en variabel, før den kan benyttes. Det kan gøre fejlfinding meget nemmere

Den er også ret vigtig i egne funktioner, da den bruges til at angive om en variabel er lokal eller ej. F.eks.:

Sub MinFunc
  ' Dim i
  For i=0 To 2  'hvis i ikke dimmes lokalt, overskrives i udenfor MinFunc
  Next
End Sub

For i = 0 To 6  'dette bliver en evighedsløkke, hvis i ikke dimmes i MinFunc
  MinFunc
Next
Avatar billede jansangill Nybegynder
23. november 2007 - 11:04 #2
Jeg dim'mer sjældent, og det er ikke en nødvendighed. men hvis du er ved at lave en kæmpe site, så er det nok smart at have styr på variablerne:)
Avatar billede ffsoft Praktikant
23. november 2007 - 12:57 #3
Det er absolut en nødvendighed, med mindre man kan skrive helt fejlfri kode eller gerne vil bruge tiden på at fejlfinde.

DageIUgen = 7

.... 400 linier kode ...

for iX = 1 to DageIUlen
... mere kode
next

Denne kode vil fejle fordi begge variable er lovlige. Men DageIUlen
indeholder ingen værdi.

Det kan tage lang tid at finde ud af at DageIUlen er en typo.

Hvis du derimod bruger Option Explicit

skal alle variabler erklæres (dim) og så vil du få besked om at
DageIUlen ikke erklæret og du kan se at det er en typo.

.
Avatar billede ffsoft Praktikant
23. november 2007 - 13:01 #4
Option Explicit

Dim intDageIUgen

intDageIUgen = 7

en anden lille smart ting er at sætte  en prefix på (her int)
der fortæller hvilken type den variable er. Her integer.

I andre sprog SKAL du erklære og typecaste variabler

Dim intDageIUgen as integer

så du kan lige så godt gøre det til en god vane.

:0)
Avatar billede softspot Forsker
23. november 2007 - 13:48 #5
Jeg er fuldstændig enig med ffsoft i at det er vigtigt med gode kodevaner fra starten. Desuden vil dimensionering af variable øge performance af dine scripts, da VBScript-fortolkeren, så ikke skal søge igennem alle relevante scopes for at finde den variabel der skal benyttes til en given reference.

Hvis man benytter Visual Studio.NET til at redigere sine ASP-filer, vil man ydermere får identifier-completion (ctrl+space) for de variable der er dimensioneret (så gør det heller ikke længere noget at man bruger lange sigende variabelnavne, da man bare kan trykke ctrl+space for at få hjælp til at skrive færdig ;-))

Der er altså flere gode grunde til at gøre sig lidt umage når man skriver sin kode... :)
Avatar billede jansangill Nybegynder
23. november 2007 - 14:13 #6
SÅ må jeg have dårlige vaner:(
Avatar billede w13 Novice
23. november 2007 - 14:26 #7
Jeg Dim'ede nu heller aldrig, før jeg fandt ud af, at det øgede performance, og bortset fra det, var det ikke et problem med fejlfinding o.lign. Så det er meget op til den enkelte på det punkt.
Men mht. performance bør man da klart bruge Dim!
Avatar billede skildpadden Nybegynder
23. november 2007 - 17:24 #8
Så det booster altså performance?
Avatar billede w13 Novice
23. november 2007 - 17:26 #9
Jup. Som Softspot siger, så fungerer det som en slags "indeksering" af dine variabler, så koden hurtigere kan hente deres indhold.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



Seneste spørgsmål Seneste aktivitet
I dag 06:10 Excel åbner fil i kæmpe format Af Aske i Excel
I går 22:00 Datafordeler Af Lsk i PHP
I går 12:37 Summere beløb pr. dato Af TTA i Excel
31/1022:44 Tilslutte chassic fans Af viking69 i PC
31/1020:28 LED lysstofrør Af ErikHg i Fri debat