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....
using System;
class CommandList
{
public delegate void Command(string args);
public void myCommand(Command c, string a)
{
c(a);
}
public static void Help(string a)
{
Console.WriteLine("Help {0}", a);
}
public static void Save(string a)
{
Console.WriteLine("Saving {0}", a);
}
public static void Load(string a)
{
Console.WriteLine("Loading {0}", a);
}
}
class Program
{
static void Main(string[] args)
{
CommandList.Command help = new CommandList.Command(CommandList.Help);
CommandList.Command save = new CommandList.Command(CommandList.Save);
CommandList.Command load = new CommandList.Command(CommandList.Load);
CommandList cList = new CommandList();
/*
cList.myCommand(help, "all");
cList.myCommand(save, "everything");
cList.myCommand(load, "total");
*/
string ind;
string myC;
string myA;
do
{
Console.Write(">");
ind = Console.ReadLine();
if (ind.ToLower() == "exit") break;
myC = ind.Substring(0, ind.IndexOf(' '));
myA = ind.Substring(ind.IndexOf(' ') + 1);
cList.myCommand(/*Hvordan får jeg min myC variabel til at referer til mit help object hvis f.eks myC indeholder "help"????*/, myA);
} while (true);
}
}
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