ich folgenden Code haben:Overloading Operator <in C#
public class Foo
{
public static bool operator<(Foo l, Foo f)
{
Console.WriteLine("Foo!");
return false;
}
//public static bool operator>(Foo l, Foo f)
//{
// return f < l;
//}
}
Compiler sagt über Fehler mit der Meldung:
Operator ‚Program.Foo.operator < (Program.Foo, Program.Foo) 'erfordert einen passenden Operator'> ', um auch definiert zu werden
Es scheint sehr seltsam für mich. Warum sollte ich operator>
überladen?
Warum ist das komisch? Wenn Sie definieren, ob obj1 kleiner als obj2 ist, sollten Sie auch definieren, ob obj1 größer als obj2 ist. –
würde ich sagen, dass * nicht * überladen beide "komisch" wären. Es würde mich sicher überraschen, dass "a a" ist. –
Werfen Sie einen Blick auf diese Frage: [Warum müssen wir sowohl == als auch! = In C# definieren?] (Http://stackoverflow.com/questions/6916884/why-must-we-define-both-and-in- c) – arbitrarystringofletters