Kornelia utworzono 24 sierpnia 2010 utworzono 24 sierpnia 2010 Witam, mam program z następującym porównaniem: - drukarka kolorowa jest zawsze lepsza (większa) od czarno-białej, - gdy dwie drukarki mają taką samą składową Kolor, to porównuje się prędkości druku (im większa tym lepsza). Czy ktoś mógłby mi wytłumaczyć działanie IComparable na tym przykładzie? [code] class Drukarka:IComparable { bool Kolor; double PredkoscDruku; public int CompareTo(object ob) { Drukarka tmp = (Drukarka)ob; if (tmp.Kolor == this.Kolor) { if (tmp.PredkoscDruku > this.PredkoscDruku) return 1; if (tmp.PredkoscDruku < this.PredkoscDruku) return -1; if (tmp.PredkoscDruku == this.PredkoscDruku) return 0; } else { if (tmp.Kolor) return 1; if (this.Kolor) return -1; } return 0; }}[/code]
benkowik komentarz 24 sierpnia 2010 komentarz 24 sierpnia 2010 Jak zawsze interfejs typu [b]IComparable[/b] służą do nietypowych* sortowań. Tutaj masz porównania o których sam pisałeś i wynikiem sortowania będzie efekt, o którym pisałeś. Co dokładnie chcesz wiedzieć? Jak to działa? Jakie procesy tam zachodzą? Na wiele pytań pomoże ci Support MS: [url="http://msdn.microsoft.com/en-us/library/system.icomparable.aspx"]http://msdn.microsoft.com/en-us/library/system.icomparable.aspx[/url] * - np. sortowanie tablicy 2-wymiarowej
Kornelia komentarz 25 sierpnia 2010 Autor komentarz 25 sierpnia 2010 Chodzi mi o to co konkretnie oznacza tmp. , this. Jak rozumieć: Drukarka tmp = (Drukarka)ob; if (tmp.Kolor == this.Kolor) itd.
Wciąż szukasz rozwiązania problemu? Napisz teraz na forum!
Możesz zadać pytanie bez konieczności rejestracji - wystarczy, że wypełnisz formularz.