Ich habe einen Aufzählungstyp, den ich die>, <,> = und < = Operatoren für definieren möchte. Ich weiß, dass diese Operatoren implizit auf der Basis des aufgezählten Typs erstellt wurden (wie in der documentation), aber ich möchte diese Operatoren explizit definieren (zur Klarheit, zur Kontrolle, um zu wissen, wie es geht, etc ...)Wie überlade ich einen Operator für eine Aufzählung in C#?
ich hatte gehofft, ich so etwas wie tun könnte:
public enum SizeType
{
Small = 0,
Medium = 1,
Large = 2,
ExtraLarge = 3
}
public SizeType operator >(SizeType x, SizeType y)
{
}
Aber diese („unexpected toke“) nicht mehr zu funktionieren scheint ... ist das möglich? Es scheint, dass es sein sollte, da es implizit definierte Operatoren gibt. Irgendwelche Vorschläge?
dass disapointing ist, wie tun sie das implizit dann? Es schien, als würde es keinen Weg geben, aber ich dachte, wenn du es implizit tun könntest, dann sollte es einen Weg geben, es explizit zu tun. Ich denke nicht. Danke für die Information. – ChrisHDog
Sie nicht. Es gibt auch keinen * impliziten * Weg. Sie können Operatoren einfach nicht für Enums überladen. –
Entsprechend: http://msdn.microsoft.com/en-us/library/aa664726(VS.71).aspx ... "Jeder Aufzählungstyp stellt implizit die folgenden vordefinierten Vergleichsoperatoren bereit:" ... Ich war gerade in der Hoffnung, dass es einen Weg gibt, einen Vergleichsoperator in ähnlicher Weise explizit bereitzustellen. Also kein Overload-Operator, sondern etwas ähnliches. – ChrisHDog