Monday, November 05, 2007

Palabra clave: Operator C#

Los operadores son sobrecargados por los metodos de las clases o estructuras que los implementan.

¿Donde se puede utilizar esta palabra clave?
Las podemos usar desde clases(class) y estructuras(struct).

¿Cuantas y cuales son las formas de declarar la palabra clave operador?
Existen 4 formas, las cuales son:

¿Explicar cada uno de los elementos definidos de las 4 formas en declarar la palabra clave operator?
  • result-type
    • El valor retornado despues de aplicar el respectivo operador sobre el parametro o sobre los dos parametros.
  • unary-operator
    • Define el operador a usar, p.e. +, -, * .....
  • op-type
    • El tipo del primer parametro.
  • operand
    • El nombre del primer parametro.
  • binary-operator
    • Define el operador a usar. (no esta clara la diferencia que guarda con el unary-operator).
  • op-type2
    • Tipo de dato del segundo operador.
  • operand2
    • El nombre del segundo parametro.
  • conv-type-out
    • El tipo de dato a tranformar previsto por el operador de conversion.
  • conv-type-in
    • El tipo de dato de entrada que operador de conversion convertira.
Ejemplo del operador de conversion:
Implicito:
Explicito:
No esta muy clara la diferencia entre Implicit y Explicit¿?.

¿Que se puede decir de las 2 primeras formas de implementar la palabra clave operator?
Que al menos uno de sus parametros(op-type, op-type2) debe ser una instancia de la clase o de la estructura en la que estan implementados.

¿Que beneficios trae declarar unos de los parametros del metodo como la clase o estructura en la cual esta contenida?
Por ejemplo previene la que volvamos a definir el operador de la suma de numeros enteros.

¿Que se puede decir de las dos ultimas formas de implementar la palabra clave operator?
Que al menos uno de sus parametros, conv-type-in y conv-type-out, debe ser del tipo de la clase o estructura en la que esta contenida. Esto quiere decir que el operador de conversion solo puedo convertir del tipo en el cual esta contenido(clase o estructura) hacia otro tipo y viceversa.

Este post nace, debido a la leccion 1 del volumen 1 para obtener la certificacion 70-536, en un ejemplo de "How to create a Structure".