C# Delegált összehasonlítás (CompareTo helyettesítése), hogyan?
Sziasztok a következő feladatot kaptam:
Készítsen egy: static int Összehasonlít(MyClass A,
MyClas B, ÖsszehasonlítóDelegált összehasonlítás) metódust. A cél az, hogy
különféle szempontok alapján tudjunk összehasonlítást végezni. Az ÖsszehasonlítóDelegált
int(MyClass, Myclass) típusú delegált. Valósítsa meg az
IComparable interfészt, ahol az Összehasonlít metódust használja fel két MyClass összehasonlítására.
Nos idáig eljutottam:
delegate int ÖsszehasonlítóDelegált(MyClass egyik, MyClass másik);
public static int Összehasonlít(MyClass egyik, MyClass másik, ÖsszehasonlítóDelegált összehasonlító)
{return összehasonlító(A, B);}
Nos vagy kihagytam valamit, vagy csak azt nem tudom a Mainben hogy kell implementálni, de sehogy nem akar működni... Előre is köszönöm a válaszokat!
static void Main(string[] args)
{
ComperableClass a = new ComperableClass(5);
ComperableClass b = new ComperableClass(10);
Console.WriteLine(Compare(a, b, (x, y) => x.CompareTo(y)));
Console.ReadKey(true);
}
static int Compare<T>(T x, T y, Func<T, T, int> func)
{
return func(x, y);
}
}
public class ComperableClass : IComparable<ComperableClass>
{
public int SomeInt { get; private set; }
public ComperableClass(int parameter)
{
SomeInt = parameter;
}
public int CompareTo(ComperableClass other)
{
// Ide valami logikát, most jó les a két int alapján a hasonlítás :)
return other.SomeInt.CompareTo(SomeInt);
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!