Avatar billede websam Nybegynder
15. januar 2004 - 10:16 Der er 4 kommentarer og
1 løsning

Private Function vs Function ?

Er der en der kort kan forklare forskellen på en Private Function og en  Function ?

/Websam
Avatar billede nute Nybegynder
15. januar 2004 - 10:54 #1
en Private deklaration betyder at den entitet (Function, Property eller andet) der har blevet deklareret, kun kan kaldes indenfor det scope den har blevet deklareret. Hvis du opretter en Private entitet indenfor en klasse (class-scope), så kan denne entitet kun bruges indenfor den klasse. Prøv at køre dette eksempel ... det vil fejle når du prøver at kalde 'getNamePrivate'

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
    <title>Untitled</title>
</head>
<body>
<%

Set objTest = New MyTestClass
objTest.setName( "Anders And" )
Response.Write( objTest.getName & "<br>" )
Response.Write( objTest.getNameDelvisPrivate & "<br>" )
Response.Write( objTest.getNamePrivate & "<br>" )
Class MyTestClass
    Private m_Name
   
    Function getName
        getName = m_Name
    End Function
   
    ' Denne kan ikke kaldes udenfra
    Private Function getNamePrivate
        getNamePrivate = "No no"
    End Function
   
    'Denne kan kaldes udenfra
    Function getNameDelvisPrivate
        getNameDelvisPrivate = getNamePrivate
    End Function
   
    Function setName( p_strName )
        m_Name = p_strName
    End Function
   
End Class
%>
</body>
</html>

/nute
Avatar billede websam Nybegynder
15. januar 2004 - 11:07 #2
Ok og hvis jeg ikke benytter Class vil det så sige at jeg kun kan køre det script der er i functionen og ikke trække en anden function ind i en private function ???

/Websam
Avatar billede nute Nybegynder
15. januar 2004 - 11:13 #3
I et almindelig VBScript, kan jeg ikke se at der skal være nogen fornuftig brug af Private, siden alle variabler og funktioner er indenfor samme scope. Det eneste jeg kunne forestille mig, som fornuftig brug af Private, var variabler:

Function blabla
    Private enVariabel
end function

Denne 'enVariabel' kan dermed ikke tilgåes udenfra denne funktion (ikke testet, men logikken tilsiger det). Men hvis dette er tilfælde, så ville jeg nok ha revideret min kode fremfor at gøre noget ála dette.

/nute
Avatar billede websam Nybegynder
15. januar 2004 - 11:20 #4
Ok takker for kommentaren til dette, Point på vej
Avatar billede nute Nybegynder
15. januar 2004 - 11:22 #5
selv tak :-)
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