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

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Funktion med flere argumenter...
Fra : Thomas Larsen


Dato : 12-06-03 10:18

Hej NG,

Jeg har en funktion der i øjeblikket modtager 4 argumenter. Den funktion vil
jeg gerne lave om således den kan tage et 5. argument. Altså noget i
retningen af:

function funkTest(arg1, arg2, arg3, arg4, NytArg)

Dette er jo ikke så svært, udover at det nye 5. argument kun har betydning
for nye kald til funktionen og jeg derfor ikke ønsker at rettet alle de
gamle kald til denne funktion, som altså kun har 4 argumenter.

Kan det lade sig gør at angive den nye argument på en sådan måde at det ikke
er påkrævet i kaldet til funktionen?

/Thomas



 
 
Johan Holst Nielsen (12-06-2003)
Kommentar
Fra : Johan Holst Nielsen


Dato : 12-06-03 10:41



Thomas Larsen wrote:
> Hej NG,
>
> Jeg har en funktion der i øjeblikket modtager 4 argumenter. Den funktion vil
> jeg gerne lave om således den kan tage et 5. argument. Altså noget i
> retningen af:
>
> function funkTest(arg1, arg2, arg3, arg4, NytArg)
>
> Dette er jo ikke så svært, udover at det nye 5. argument kun har betydning
> for nye kald til funktionen og jeg derfor ikke ønsker at rettet alle de
> gamle kald til denne funktion, som altså kun har 4 argumenter.
>

Nu er jeg ikke så stærk til ASP... men PHP er det blot

function funkTest(arg1,arg2,arg3,arg4,NytArg='')

mvh
Johan


Jesper Stocholm (12-06-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 12-06-03 11:00

Johan Holst Nielsen wrote :

>
>
> Thomas Larsen wrote:
>> Hej NG,
>>
>> Jeg har en funktion der i øjeblikket modtager 4 argumenter. Den
>> funktion vil jeg gerne lave om således den kan tage et 5. argument.
>> Altså noget i retningen af:
>>
>> function funkTest(arg1, arg2, arg3, arg4, NytArg)
>>
>> Dette er jo ikke så svært, udover at det nye 5. argument kun har
>> betydning for nye kald til funktionen og jeg derfor ikke ønsker at
>> rettet alle de gamle kald til denne funktion, som altså kun har 4
>> argumenter.
>>
>
> Nu er jeg ikke så stærk til ASP... men PHP er det blot
>
> function funkTest(arg1,arg2,arg3,arg4,NytArg='')

Men det virker bare ikke i ASP. Jeg forsøgte lidt tidligere med koden

sub DoStuff(arg1,arg2,arg3=null)
   msgbox("3")
end sub

sub DoStuff(arg1,arg2)
   msgbox("2")
end sub

call DoStuff(1,2,3)

Definitionen af DoStuff bliver overskrevet af gentagelsen af erklæring af
min sub. Herudover giver første linie en synkaksfejl. Hvis jeg fjerner
"=null" så giver resultatet "Wrong number of arguments". Hvis jeg bytter om
på rækkefølgen af de to erklæringer, giver den resultatet 3.

I øvrigt er det Thomas gerne vil jo "parameter overload" - det kan være en
søgning på Google kan give nogle hints.



--
Jesper Stocholm - www.stocholm.dk

Giv et bud på et nyt design til Polyteknisk Forenings hjemmeside.
Se konkurrencen på www.pf.dtu.dk/webdesign

Jens Gyldenkærne Cla~ (12-06-2003)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 12-06-03 11:19

Thomas Larsen skrev:

> Jeg har en funktion der i øjeblikket modtager 4 argumenter.
> Den funktion vil jeg gerne lave om således den kan tage et 5.
> argument. Altså noget i retningen af:
>
> function funkTest(arg1, arg2, arg3, arg4, NytArg)

Som Jesper også skriver, er det du efterlyser parameter overload -
eller blot overload af funktioner. Jeg mener ikke at det kan gøres
direkte i asp - men hvis du ikke vil ændre de gamle funktionskald
kan du bruge følgende metode:

- Opret en ny funktion med alle argumenter.
- Fjern indholdet i den gamle funktion, og lad den i stedet kalde
den nye funktion med en defaultværdi for de manglende parametre:


Eksempel:

function glFunktion(arg1, arg2, arg3, arg4)
   call nyFunktion(arg1, arg2, arg3, arg4, null)
end function

function nyFunktion(arg1, arg2, arg3, arg4, arg5)
   ' modificeret glfunktion, ændret til at håndtere
   ' ekstra argumenter
end function
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Per Thomsen (20-06-2003)
Kommentar
Fra : Per Thomsen


Dato : 20-06-03 06:56

Thomas Larsen wrote:
> Hej NG,
>
> Jeg har en funktion der i øjeblikket modtager 4 argumenter. Den funktion vil
> jeg gerne lave om således den kan tage et 5. argument. Altså noget i
> retningen af:
>
> function funkTest(arg1, arg2, arg3, arg4, NytArg)
>
> Dette er jo ikke så svært, udover at det nye 5. argument kun har betydning
> for nye kald til funktionen og jeg derfor ikke ønsker at rettet alle de
> gamle kald til denne funktion, som altså kun har 4 argumenter.

Hvis du nu skriver dine ASP sider i JScript, kan du skrive
f.eks.

function funkTest(arg1, arg2, arg3, arg4, NytArg) {
if( typeof(NytArg)=="undefined" ) {
var NytArg = ""; // Standard værdi
}
// Gammel funktions indhold her
}

MVH Per Thomsen,
http://www.pert.dk/


Søg
Reklame
Statistik
Spørgsmål : 177560
Tips : 31968
Nyheder : 719565
Indlæg : 6408946
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste