08. oktober 2005 - 20:14Der er
10 kommentarer og 1 løsning
Kald af klasser via deres navne som strenge
Problemstillingen er lidt mærkelig og måske er det bare mig der er dum, men here goes.
Jeg har en klasse som kalder nogle "modul"-klasse med 13 standard statiske metoder. Alle moduler har de 13 metoder som skal kaldes. Eneste der adskiller klasser fra hinanden er deres namespace.
Dette virker altsammen fint, men hver gang jeg tilføjer et modul skal jeg tilføje de 13 metodekald... Der tænkte jeg at hvis jeg kunne en collection af namespace-navnene (array, xml, eller noget i den stil). og på en eller anden måde kunne jeg nøjes med at tilføje namespace navnet.
Med psuedo-kode ville det være noget i denne stil
foreach(string namespace in collection) { (namespace).klassenavn.metode1(); (namespace).klassenavn.metode2(); ... (namespace).klassenavn.metode13(); }
Altså det jeg er ude efter er at kunne på en eller anden måde konverteret namespacet som streng til det egentlige namespace.
ref parametere er ellers mega smarte i nogle tilfælde...
Men tak for svar... Det har gjort min kode meget nemmere at arbejde med... Og sat en masse andre ideer igang til hvad det ellers kan bruges til af smarte ting...
Når en class overføres som parameter til en funktion vil den altid overføres som en reference til addressen i hukommelsen og vil dermed blive ændret direkte.
En struct kan overføres som parameter og frit ændres uden indflydelse på hvad der foregår andre steder. Hvis det ønskes overføres den med ref. Dette gælder f.eks for string, int osv.
Personligt har jeg aldrig haft brug for at bruge en ref.
Jeg bruger ofte ref sammen med booleans... De bliver jo ikke sendt som standard med ref... out parametre er også ganske effektive når der skal mere en returværdien (i stedet for at lave et returobjekt)
der er ikke noget som standard bliver sendt som ref
iøvrigt har C# en glimrende syntax for ref kald (at det skal angives i selve kaldet også)
i C++ kan man blive groft vildledt fordi "uskyldige" kald ændrer på variable
Synes godt om
Ny brugerNybegynder
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.