Avatar billede martins Nybegynder
19. november 2004 - 11:25 Der er 7 kommentarer og
1 løsning

Dele objekter over flere klasser.

Vi sidder pt. og roder med at kunne tilgå og manipulere et objekt oprettet i én klasse, i en anden. Det bliver oprettet i vores Default.aspx.cs fil, og vi ønsker så at kunne manipulere det i en klasse - fx Users.cs. Vi kan godt gøre det hvis vi sender objektet med vores metode-kald i Default.aspx.cs, men umiddelbart virker dette ikke som en holdbar løsning.

Vores spørgsmål er altså, om ikke en public declared variable i Default.aspx.cs burde være tilgængelig for alle sider/klasser i vores namespace?
Avatar billede repsak Nybegynder
19. november 2004 - 11:41 #1
Jo, en public variabel vil altid være synlig - hvis altså dit default-namespace kan se dit Users-namespace

ellers må du nok smide lidt kode :-)
Avatar billede martins Nybegynder
19. november 2004 - 11:44 #2
Default.aspx.cs og Users.cs ligger i det samme namespace, så de burde da helt sikkert kunne se hinanden. Men det virker bare stadig ikke. Sig til hvis du stadig vil se kode :)
Avatar billede arne_v Ekspert
19. november 2004 - 11:54 #3
Jeg tror at jeres problem bunder i static versus ikke static.

For at kunne tilgå en ikke static metode/property/field, så skal I have
en reference til et objekt.

Static metode/property/field kan derimod tilgåes via klassenavn.
Avatar billede martins Nybegynder
19. november 2004 - 12:12 #4
Vi forstår ikke helt hvad du mener Arne V. Så her kommer et konkret eksempel vi sidder med.

På vores default.aspx.cs opretter vi et instans af vores klasse "Login". Dette instans kalder vi "objLogin", ved at "Login objLogin = new Login();".

Vi har et textfield hvor brugeren har mulighed for at logge sig ind. Ved submit af webformen, gemmer vi indholdet af textfieldet i "objLogin.StrPassword". Nu vil vi så gerne kalde vores metode i Login.cs som hedder "IsValid()", og i den metode vil vi jo så gerne kunne referere til "objLogin.StrPassword" for at finde værdien af textfielded fra før.

Håber det giver mening fordi vi forstår ikke helt hvad du mener med "static". Vi har læst os frem til definationen af "static", men lige hvordan du mener vi skal bruge det, er vi ikke med på.
Avatar billede arne_v Ekspert
19. november 2004 - 12:30 #5
Jeg tvivler på at I kan bruge static. Hvis I kunne ville det løse jeres problem.

Men skal I bruge objLogin så skal I bruge det.

Enten må det sendes med som argument til den metode som skal bruge det.

Eller så må det sendes med som argument til constructor i det objekt
der skal bruge det, som så gemmer det så metoden senere kan bruge det.
Avatar billede martins Nybegynder
19. november 2004 - 12:33 #6
Ok det var også hvad vi frygtede :-)

Men tak for din hjælp, hvis du smider et svar skal du få point.
Avatar billede arne_v Ekspert
19. november 2004 - 12:36 #7
Der er også mere eksotiske løsninger med f.eks. en Hashtable Singleton.
Avatar billede arne_v Ekspert
19. november 2004 - 12:36 #8
svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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