Jeg håber i forstår? Jeg søger den magiske MapStringToType() metode :) Er nybegynder i C# men har god erfaring med Java.
En alternativ metode - som jeg gerne vil undgå - er at switche på de forskellige typer af typer som mit object kan kastes som. Men denne metode ville være langt mere fleksibel...
Denne side indeholder artikler med forskellige perspektiver på Identity & Access Management i private og offentlige organisationer. Artiklerne behandler aktuelle IAM-emner og leveres af producenter, rådgivere og implementeringspartnere.
Du kan ikke caste til noget der bestemmes på runtime.
Ligesom i Java kan du: - bruge reflection til at finde det du skal bruge - caste til et interface eller abstrakt basis klasse som de alle arver fra - switche
Variablen BC er af typen BaseClass og kan indeholde en instans af klasserne BaseClass, AClass eller BClass. Alt efter hvilken der er tale om, så finder den selv ud af hvilken variant af SomeProperty der skal kaldes.
Jeg har gang i at implementere en speciel version af interpreter pattern. Jeg bygger en interpreter som universitets-projekt.
Men jeg havde faktisk overset at jeg kunne bruge den intelligens som nielle snakker om - og arne_v har helt sikkert ret. Det plejer du at have arne_v :)
Men mit problem er løst og jeg deler pointene lige imellem jer...
Hvis du er nybegynder i C# er reflektion måske en kende langhårdet at gå igang med. Ellers er det et meget stærkt værktøj, men en kende overkill til dit problem.
nielle> Jeg er kommet videre i C# siden dette spørgsmål :) Så vidt jeg forstår reflection så giver det muligheden for (blandt andet) at få listet alle mulige oplysninger om en klasse (kalde en bestemt metode udfra en søgning på navnet etc.)
Kunne ikke lige se hvordan jeg kunne bruge det her. Men alt i alt virker det nu. Jeg havde glemt den frihed som polymorfi giver mig. Jeg sparer nu utrolig mange linier kode bare ved at arve og override...den med Java er også lang tid siden :)
Ja det er sku smart :) Så man kan altså i runtime definere hvilken property man vil benytte, og i hvilken klasse den skal ligge? Jeg er som sagt stadig ved øve mig i at benytte krafterne bag polymorfi.
"Definere" er det forkerte ord i lige denne sammenhæng hvor det mere går ud på at finde en property som du kender navnet på. Men den slags kan man faktisk også gøre.
Reflection er lidt besværligt og har også et vist performance overhead.
Men det er nødvendigt hvis du ikke har mulighed for at lade dine klasser arve fra noget fælles.
(du kan iøvrigt lave tilsvarende i Java)
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.