|
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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)
![](/App_Themes/Normal/images/Window/Backgrounds/news.gif) | 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
| |
|
|