Hvordan får jeg en string til at referere til et object

Tags:    c#

Hej,

Jeg er igang med at lave en konsol hvor der kan indtastes en commando som evt. tager argumenter... Nedenstående kode er en meget simplificeret udgave af det jeg er igang med at lave....

Fold kodeboks ind/udKode 


Mit problem er når jeg har selve kommando strengen, hvordan får jeg den så til at referere til f.eks mit help-kommando object hvis myC indeholder "help"???

Har ledt lidt på nettet men synes det er nogle lidt kringlede måder jeg har fundet og tænkte ved mig selv at det kan sq ikke være så fandens besværligt igen... men hvad en noob som mig om det....

Hvis der er nogle der kan komme med et eksempel på hvad jeg skal skrive i min linie der indeholder

cList.myCommand(?????, myA);

På forhånd tak....

Happy Coding, Kent



Indlæg senest redigeret d. 07.03.2009 10:28 af Bruger #14086
1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hvis jeg ellers har forstået hvad det er du vil lave korrekt, så er det en fortolker du vil lave.

i det konkrete tilfælde du har her, kunne du fra input strengen tage første forekomst af " " og klippe strengen over i to. Altså cmd og args, cmd kan du så evt. lowercase, og så kan du slå op i en dictionary.
instantiering:
var cmds = new Dictionary<string, Command>();
tilføjelse af kommandoer
cmds["help"] = helpcmd;

en kommando kan hentes ved
cmds[string];

og cmds har også en containskey metode så du kan se om funktionen findes.

Den forkromede løsning jeg selv ville have valgt, var at bruge en lexer og en parser generator, f.eks. SableCC (ville dog rette nogle af templatesne)
I SableCC ville jeg kunne klare det hele ved blot at lave een klasse der arver en traverserings klasse leveret af SableCC.



t