c# volanie dedených metód

Programovacie jazyky, rady, poradňa...
Juri1990
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 365
Registrovaný: 25 jan 2006, 10:05
Bydlisko: Bratislava
Kontaktovať používateľa:

c# volanie dedených metód

Príspevok od používateľa Juri1990 »

Zdravím, narazil som na jeden problém, mám takéto triedu + ďalšie triedy podobné ako Implikacia a neviem ako to spraviť aby to nevolalo
metódy tej Formula, ale toho čo tam naozaj je.

Kód: Vybrať všetko

class Formula
    {
        public override string ToString(){return "";}
        public virtual bool Eval(Dictionary<string, bool> slovnik) {return false;}
    }

    class Premenna : Formula
    {
        string name;
        public Premenna(string n) { name = n; }
        public override string ToString() { return name; }
        public bool Eval(Dictionary<string, bool> slovnik)
        {
            foreach (KeyValuePair<string, bool> pair in slovnik)
            {
                if (pair.Key == name) return pair.Value;
            }
            throw new NoValueException();
        }

    }

    class Implikacia : Formula
    {
        Formula ls, rs;
        public Implikacia(Formula _ls, Formula _rs) { ls = _ls; rs = _rs; }
        public override string ToString() { return "("+ls.ToString() + "=>" + rs.ToString()+")"; }
        public bool Eval(Dictionary<string, bool> slovnik)
        {
            if (ls.Eval(slovnik) == true && rs.Eval(slovnik)==false) return false;
            return true;
        }
    }
V main to mám (testovaco) zadefinované takto

Kód: Vybrať všetko

 var f = new Implikacia(new Premenna("a"),
                new Implikacia(new Premenna("x"), new Premenna("y")));
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: c# volanie dedených metód

Príspevok od používateľa BX »

K

Kód: Vybrať všetko

public bool Eval(Dictionary<string, bool> slovnik)
pridaj override, podobne ako u ToString
Juri1990
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 365
Registrovaný: 25 jan 2006, 10:05
Bydlisko: Bratislava
Kontaktovať používateľa:

Re: c# volanie dedených metód

Príspevok od používateľa Juri1990 »

Vďaka, tvári sa, že to funguje, som skúšal všelijaké možnosti, ale táto mi nenapadla
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: c# volanie dedených metód

Príspevok od používateľa BX »

No toto urobit musis, ako inak ma vediet, ze tu metodu prekryvas... (override)
Napísať odpoveď