Hirdetés

Új hozzászólás Aktív témák

  • Lacces

    őstag

    Hali!

    Objektumoknál írtunk egy ilyen Equals()-t én csak most vettem észre, hogy az
    n1.Equals(n3) esetén true-t ad vissza. Az a kérdésem, hogy miért?
    (Nem hiszem, hogy a paraméter miatt lehet)

    (n1==n3 false, mert a két objektum más helyre mutat.)

    public override bool Equals(object obj)
    {
    // as - Referenciát ad vissza, ami a jobb oldalon van, ha konvertálható
    // ha nem, akkor null-t ad vissza!
    Negyzet tmp = obj as Negyzet;
    // Ha Nem sikeres a konverzió
    if (tmp == null)
    {
    return false;
    }
    // Ha Sikeres a konverzió
    return this.a == tmp.a;
    }

    static void Main(string[] args)
    {
    Negyzet n1 = new Negyzet(2.0);
    Negyzet n2 = new Negyzet(5.0);
    Negyzet n3 = new Negyzet(2.0);
    ...
    Console.WriteLine((n1==n2) + " " + (n1==n3)+ " " + (n2==n3));
    Console.WriteLine(n1.Equals(n2)+ " " + n1.Equals(n3)+ " " + n2.Equals(n3));

Új hozzászólás Aktív témák