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
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 ???
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.
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.