Diskuze: Problém s Equals v potomkovi

C# .NET .NET (C# a Visual Basic) Problém s Equals v potomkovi American English version English version

Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:

No opět potřebuju menší help. V potomkovi potřebuju překrýt equals a k tomu jsem použil rozhraní IEquatable<T> který normálně používám a funguje dobře.

V potomkovi tedy volám equals takto

public bool Equals(InventoryItem other)
        {
            if (other != null)
            {
                return other.Equals(this) && this.Count == other.Count;

            }
            return false;

        }

Ovšem díky tomu mám StackOverflow. Ono vím v čem je chyba. Equals se vlastně volá donekonečna. Není možnost zavolání base třídy Equals nebo musím vypsat porovnání i z předka znovu ? Díky :) (doufám že tam není jenom nějaká blbost, jak je u mě zvykem :D )

Odpovědět 12.6.2013 13:26
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Petr Nymsa
Redaktor
Avatar
Petr Nymsa:

Bože jak jsem mohl vypustit takovu blbost :D Samozřejmě že base.Equals() :` ... musím jít na chvilku na vzduch :D

Editováno 12.6.2013 13:28
Nahoru Odpovědět 12.6.2013 13:28
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
Odpovídá na Petr Nymsa
Luboš Běhounek (Satik):

budto to base.Equals(...) nebo by se dalo asi i pouzit
((TypPredka)this)­.Equals(...)
kdyz bys chtel primo nejakyho konkretniho predka (kdyz by to dedeni bylo vicenasobne)

Nahoru Odpovědět 12.6.2013 13:39
:)
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.