W skrócie: Chciałbym stworzyć program, który bierze stringa (bądź to z konsoli, bądź to z innych źródeł) i na podstawie jego zawartości wykonać odpowiednie funkcje (taki kalkulator konsolowy). Mam trzy klasy; Liczba, Operator i Zdanie. Konstruktor Zdania wyłapuje ze stringa na wejściu wszystkie Liczby i Operatory wstawia do odpowiednich tablic. Natomiast z rozpoznawaniem operatorów mam problem, bo są one powiązane z jakimiś funkcjami, które trzeba wykonać na liczbach. Aktualnie klasa wygląda jak poniżej, ale nie wiem, jak zapisać, kod, który określiłby typ każdej instancji Operatora bez użycia tego switcha w FunkcjiOperatora? Czy można stworzyć taki wskaźnik do funkcji. Słyszałem, że da się to zrobić z użyciem func<T>(a1,a2,....), ale nie wiem, jak tego dokonać.
class Operator { string type; public Liczba Return(Liczba l) { return l; } public Liczba First(Liczba l1, Liczba l2) { return l1; } public Liczba Second(Liczba l1, Liczba l2) { return l2; } public Liczba Iloraz(Liczba l1, Liczba l2) { /*Kod na iloraz*/ } public Liczba Iloczyn(Liczba l1, Liczba l2) //Kod public Liczba Różnica(Liczba l1, Liczba l2) //Kod public Liczba Suma(Liczba l1, Liczba l2) //Kod public Liczba FunkcjaOperatora(Liczba l) { switch(type) { case "Return" } } public Liczba FunkcjaOperatora(Liczba l1,Liczba l2) { switch(type) { case "Iloraz" //i tak dalej } } public Operator(char input) { switch (input) { case ' ': this.type = "Return"; break; case '+': this.type = "Suma"; break; // i tak dalej... } } }