Mam typ wyliczeniowy, który chciałbym zdefiniować operatorów>, <,> = i < = dla. Wiem, że operatory te są tworzone w sposób domyślny na podstawie wyliczonego typu (zgodnie z documentation), ale chciałbym wyraźnie zdefiniować te operatory (dla jasności, kontroli, wiedzieć, jak to zrobić, itp ...)Jak przeciążać operatora dla wyliczenia w C#?
miałem nadzieję, mógłby zrobić coś takiego:
public enum SizeType
{
Small = 0,
Medium = 1,
Large = 2,
ExtraLarge = 3
}
public SizeType operator >(SizeType x, SizeType y)
{
}
Ale to nie wydają się działać („nieoczekiwany Toke”) ... czy to możliwe? Wygląda na to, że powinno być, ponieważ istnieją implicite zdefiniowane operatory. Jakieś sugestie?
to rozczarowujące, jak oni to robią, że implictly wtedy? Wyglądało na to, że nie będzie sposobu, ale pomyślałem, że jeśli można to zrobić w sposób dorozumiany, to powinien istnieć sposób, aby to zrobić w sposób wybiórczy. Nie sądzę. Dzięki za informację. – ChrisHDog
Nie robią tego. Nie ma też * niejawnego * sposobu. Po prostu nie można przeciążać operatorów do wyliczenia. –
Zgodnie z: http://msdn.microsoft.com/en-us/library/aa664726 (VS.71).aspx ... "Każdy typ wyliczenia domyślnie zawiera następujące predefiniowane operatory porównania:" ... ja po prostu mając nadzieję, że istnieje sposób, aby w sposób wyraźny podać operator porównania w podobny sposób. Więc nie jest to operator przeciążający, ale coś prostego. – ChrisHDog