que tienen un tipo enumerado que me gustaría definir la>, <,> = y = < operadores para. Sé que estos operadores se crean implícitamente sobre la base del tipo enumerado (según la documentation) pero me gustaría definir explicitamente estos operadores (para mayor claridad, para el control, para saber cómo hacerlo, etc ...)¿Cómo sobrecargo un operador para una enumeración en C#?
Tenía la esperanza de que pudiera hacer algo como:
public enum SizeType
{
Small = 0,
Medium = 1,
Large = 2,
ExtraLarge = 3
}
public SizeType operator >(SizeType x, SizeType y)
{
}
Pero esto no parece funcionar ("toke inesperada") ... ¿es esto posible? Parece que debería ser así porque hay operadores definidos implícitamente. ¿Alguna sugerencia?
eso es decepcionante, ¿cómo lo hacen implícitamente que entonces? Parecía que no habría una manera, pero pensé que si podías hacerlo implícitamente, entonces debería haber una forma de hacerlo explícitamente. Supongo que no. Gracias por la información. – ChrisHDog
No lo hacen. Tampoco hay una forma * implícita *. Simplemente no puede sobrecargar operadores para enums. De acuerdo con –
: http://msdn.microsoft.com/en-us/library/aa664726(VS.71).aspx ... "Cada tipo de enumeración implícita proporciona los siguientes operadores de comparación predefinidos:" ... yo era sólo esperando que haya una forma de proporcionar explícitamente un operador de comparación de manera similar. Entonces no es exactamente un operador de sobrecarga, sino algo similar. – ChrisHDog