/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
Styring af scope
Fra : Frontier


Dato : 27-06-03 22:28

Hejsa :)

Her et let lille spørgsmål mht. scope. Først et lille eksempel:

   if 1=1 then
      dim aaa
   end if

   if 1=1 then
      dim aaa
   end if

Dette eksempel har begge variablen aaa. I sprog som C++ etc,
eksisterer aaa kun indenfor hver IF-statement. I VBscript / ASP
(IIS5.0), eksisterer den overalt, selv om man skulle destrurere den
med en set aaa=nothing.

Hvordan pokker slipper man uden om denne fejl? Jeg ved godt, at jeg
bare kunne ændre 2. aaa til aaaa - men jeg vil hellere vide hvordan
man gør det - the right way?

Mvh:
Klaus Jakobsen

 
 
Thomas Daugaard (28-06-2003)
Kommentar
Fra : Thomas Daugaard


Dato : 28-06-03 01:19

"Frontier" <spameater@frontier.dyndns.dk> wrote in message
news:sldpfvgtifeqlsda87imlvvqtekgvs5mk3@4ax.com...
> Dette eksempel har begge variablen aaa. I sprog som C++ etc,
> eksisterer aaa kun indenfor hver IF-statement. I VBscript / ASP
> (IIS5.0), eksisterer den overalt, selv om man skulle destrurere den
> med en set aaa=nothing.

hmm .. der er vist noget du har misforstået... :/

I C++ har du bl.a scopes som classes og functions.

hvis du har:

if (foo)
{
int c;
}

så vil 'c' være tilgængelig resten af programmet igennem, så længe din
if-sætning blev udført.

'Set foo = Nothing' destruere objekt referencer, det "sletter" ikke en
variabel.
Den eksisterer stadig, med værdien "Nothing":

If foo Nothing Then ' ville være True med en Set foo = Nothing.

"The right way" ville være at have to forskellige variabel navne.
>
> Hvordan pokker slipper man uden om denne fejl? Jeg ved godt, at jeg
> bare kunne ændre 2. aaa til aaaa - men jeg vil hellere vide hvordan
> man gør det - the right way?
>
> Mvh:
> Klaus Jakobsen



Frontier (28-06-2003)
Kommentar
Fra : Frontier


Dato : 28-06-03 12:25

On Sat, 28 Jun 2003 02:18:39 +0200, "Thomas Daugaard"
<news@overnusser.dk> wrote:

>"Frontier" <spameater@frontier.dyndns.dk> wrote in message
>news:sldpfvgtifeqlsda87imlvvqtekgvs5mk3@4ax.com...
>> Dette eksempel har begge variablen aaa. I sprog som C++ etc,
>> eksisterer aaa kun indenfor hver IF-statement. I VBscript / ASP
>> (IIS5.0), eksisterer den overalt, selv om man skulle destrurere den
>> med en set aaa=nothing.
>
>hmm .. der er vist noget du har misforstået... :/
>
>I C++ har du bl.a scopes som classes og functions.
>
>hvis du har:
>
>if (foo)
>{
> int c;
>}
>
>så vil 'c' være tilgængelig resten af programmet igennem, så længe din
>if-sætning blev udført.
>
>'Set foo = Nothing' destruere objekt referencer, det "sletter" ikke en
>variabel.
>Den eksisterer stadig, med værdien "Nothing":
>
>If foo Nothing Then ' ville være True med en Set foo = Nothing.
>
>"The right way" ville være at have to forskellige variabel navne.

Jeg takker og bukker for hurtig respons...

Mvh:
Klaus Jakobsen

Troels Thomsen (30-06-2003)
Kommentar
Fra : Troels Thomsen


Dato : 30-06-03 15:17

> hvis du har:
>
> if (foo)
> {
> int c;
> }
>
> så vil 'c' være tilgængelig resten af programmet igennem, så længe din
> if-sætning blev udført.

Enten kender du en rimelig hemmelig compiler switch, eller også er det
simpelthen forkert. Har du prøvet ?

if (foo)
{
int c;
}
c = 2;

Jeg tipper på undeclared identifier.

mvh Troels



preben nielsen (28-06-2003)
Kommentar
Fra : preben nielsen


Dato : 28-06-03 08:29


"Frontier" <spameater@frontier.dyndns.dk> skrev i en meddelelse
news:sldpfvgtifeqlsda87imlvvqtekgvs5mk3@4ax.com...

> if 1=1 then
> dim aaa
> end if
>
> if 1=1 then
> dim aaa
> end if

I VB6 er der ingen direkte løsning. I VB.NET kan du.

Hvad præcis forsøger du at opnå som nødvendiggør denne meget
lokale erklæring af variablen ?


--
/\ preben nielsen
\/\ prel@post.tele.dk



Troels Thomsen (30-06-2003)
Kommentar
Fra : Troels Thomsen


Dato : 30-06-03 15:19


>
> Hvordan pokker slipper man uden om denne fejl? Jeg ved godt, at jeg
> bare kunne ændre 2. aaa til aaaa - men jeg vil hellere vide hvordan
> man gør det - the right way?
>

Gætteri : Hvis det er noget kode du har arvet rundtomkring fra, kan du så
ikke placere det i forskellige moduler ?

mvh Troels



Søg
Reklame
Statistik
Spørgsmål : 177496
Tips : 31968
Nyheder : 719565
Indlæg : 6408491
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste