Avatar billede mach3 Nybegynder
19. december 2004 - 22:28 Der er 10 kommentarer og
1 løsning

c#: global funktion?

Hej,

Er det muligt (hvordan) at lave en funktion i c# i first.cs således at alle .cs filer som nedarver fra first.cs er i stand til at anvende denne funktion?

Med venlig hilsen
Avatar billede arne_v Ekspert
19. december 2004 - 22:32 #1
Det er klasser der arver - ikke filer.

Men alle public og protected metoder kan anvendes (også internal protected og
muligvis internal).
Avatar billede erikjacobsen Ekspert
19. december 2004 - 22:35 #2
Du kan lave en klasse i first.cs der fx hedder Utils, og i den lave en
static metode f(). Så kan du kalde den som Utils.fs();
Det er det nærmeste du kommer til en global funktion.
Avatar billede erikjacobsen Ekspert
19. december 2004 - 22:36 #3
Ok - jeg læste vist kun overskriften, global funktion, men du siger nedarvning... *g*
Avatar billede arne_v Ekspert
20. december 2004 - 23:09 #4
Det var jo 2 forskellige tolkninger af spørgsmålet.

mach3 kan sikkert fortælle os hvilken der er rigtig.
Avatar billede mach3 Nybegynder
20. december 2004 - 23:29 #5
Hej,

Det er rigtigt, jeg fik ikke formuleret mig ordentligt. Mest fordi jeg egentligt heller ikke selv vidste, hvad jeg mente :o)

Men jeg har leget lidt med det i dag og her er en lidt mere præcis formulering:
Jeg har en applikation i asp.net som består af en hel masse aspx filer som alle nedarver fra tilsvarende .cs klasser. Og alle .cs klasserne nedarver fra hovedklassen, nemlig pagetemplate.cs

Det er sådan, så at man på de forskellige sider kan udføre nogle funktioner. Fx er der på test.aspx to textboxes. Man indtaster to tal og trykker submit. Resultatet af dette tal skal så skrives til databasen. Og her kommer mit problem så langt om længe: Der er på test.aspx (ligesom alle de andre aspx sider) en dropdownlist, hvor man kan vælge i mellem systemA, systemB og systemC.

Der er altså tale om identiske operationer med den forskel, at resultatet skal skrives til den database, som er bestemt af det valgte system i dropdownlisten.

Man kan selvfølgelig skrive i hver aspx en ny dropdownlist der indeholder de tre systemer. Men hvad så hvis der en dag kommer et systemD på? -Så skal man ind i alle aspx filer og ændre det, hvilket ikke er så optimalt :o)

Så det jeg tænkte på var at skrive i pagetemplate.cs de tre systemer (a,b og c).

I hver klasse skal der så i pageLoad være en funktion, som fylder dropdownlisten med de tre (eller x antal) systemer.

Ok, jeg ved ikke om jeg fik formuleret mig bedre - det er lidt svært :o)

Tænker lige over det og skriver et indlæg mere senere, hvis jeg kan forklare det lidt bedre :o)

Med venlig hilsen
Avatar billede arne_v Ekspert
21. december 2004 - 00:05 #6
Er det ikke bare at lade sub klassernes page load kalde super klassens page load
og lade den sætte det fælles op ?
Avatar billede mach3 Nybegynder
21. december 2004 - 00:46 #7
Super klassen har ikke nogen PageLoad. Super klassen har en OnInit().

Jeg var ikke sikker på om jeg kunne også kunne have en PageLoad i superklassen - så det kan jeg godt?

Det vil jeg da bestemt overveje så :o)
Avatar billede arne_v Ekspert
21. december 2004 - 07:41 #8
Medmindre der er et specielt ASP.NET problem så bør du sagtens kunne dette (husk
virtual og override).
Avatar billede mach3 Nybegynder
21. december 2004 - 15:20 #9
Ok tak for hjælpen - da det ikke er første prioritet venter jeg lidt med det. Men tak for tips.

Drop et svar :o)
Avatar billede arne_v Ekspert
21. december 2004 - 15:21 #10
svar
Avatar billede mach3 Nybegynder
24. december 2004 - 09:40 #11
Mange tak :o)
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