Sobrecarga del operador C#

«En este artículo, discutiremos el concepto de sobrecarga de operadores en el lenguaje de programación C#. La técnica de hacer que un operador normal realice operaciones distintas a su operación convencional es el significado fundamental de la sobrecarga del operador. C# permite a los usuarios predefinir algunos operadores que son sobrecargables porque hay dos tipos de operadores cuando se trata de sobrecarga, a saber, operadores sobrecargables y operadores no sobrecargables. Los operadores unarios y los operadores binarios son los operadores sobrecargables en el lenguaje de programación C#. Mientras que el resto de los operadores son operadores no sobrecargables, algunos de ellos son operadores lógicos, operadores compuestos y operadores de conversión”.

Contenidos

sobrecarga del operador

Para entender el concepto de sobrecarga de operadores, implementemos el operador más básico y comúnmente sobrecargado que usamos, el operador +. Por lo general, el operador + se usa para sumar dos números. Pero si lo ponemos entre una cadena y un número, ambos se concatenarán. Este es un buen ejemplo de sobrecarga de operadores unarios.

En el programa C# anterior, demostramos una función simple donde usamos el operador «+» para agregar 2 números en la primera línea, y luego en la segunda línea usamos el mismo operador para agregar una cadena y un número. La palabra que se une se concatenará la cadena y un número porque estamos sobrecargando al operador para eso.

La salida del programa anterior muestra la naturaleza dual del operador «+»; La primera operación simplemente suma dos números para obtener el resultado 4, pero la otra operación usa el operador «+» como un medio para concatenar una cadena con un número, como está predefinido en el lenguaje de programación C#. Ahora veamos algunos ejemplos de sobrecarga de operadores, donde usamos la palabra clave operator para especificarla como una sobrecarga de un operador específico.

Ejemplo 01: Sobrecarga del operador «-» en Ubuntu 20.04

En este ejemplo, nos enfocamos en sobrecargar un operador extensamente a través de la herencia de los métodos de sobrecarga. En este caso, el operador «-» está sobrecargado. El valor de una variable entera se asigna al operador «-«; Sin embargo, el funcionamiento típico del «-» cambia por sobrecarga. Usaremos álgebra para traducir el operador «-» en un carácter que se le puede dar a un número.

En el ejemplo anterior, tenemos dos variables enteras y reemplazamos sus valores con otros dos enteros. Luego creamos la función de sobrecarga usando la palabra clave operator, que redefine la operación tradicional del operador «-«. Luego llamamos al operador sobrecargado en el programa principal para ver la diferencia entre el operador normal y el sobrecargado. Después de compilar y ejecutar el programa anterior, obtenemos el siguiente resultado:

Como podemos ver, el operador ahora está sobrecargado y la función predefinida del método sobrecargado se ejecutará en la última llamada.

Ejemplo 02: Sobrecarga del operador «+» en Ubuntu 20.04

Como discutimos anteriormente, el operador «+» está sobrecargado y puede realizar múltiples operaciones, pero aún puede sobrecargarse a través de métodos y herencia de objetos de clase. En este ejemplo, sobrecargamos el operador «+» al hacer que el operador «+» agregue dos objetos a una clase en lugar de números, que es la función predefinida del operador «+». El operador + se sobrecarga utilizando el método de palabra clave del operador.

En este programa C#, crearemos un método para sobrecargar el operador «+». Primero creamos una clase y llamamos a su objeto en el método de sobrecarga. Estos objetos se usan para definir la funcionalidad del operador «+», que agrega dos objetos a una clase usando el operador «+». Luego se crea el método de visualización que muestra el objeto «num». En el programa principal, creamos nuevos objetos y asignamos valores a las clases, y luego usamos el operador «+» sobrecargado para agregar dos objetos. Después de compilar el programa anterior, obtenemos el resultado que se muestra a continuación:

Los valores de los objetos de la clase se muestran en la salida, que son «5» y «10», y la suma de estos objetos es «15», lo que indica que ahora hemos sobrecargado el operador «+» para obtener dos objetos. de la clase add y sumarlos a un resultado, similar a la suma ordinaria de dos números enteros.

Ejemplo 03: Sobrecarga del operador «*» en Ubuntu 20.04

El método de sobrecargar el operador «*» se analiza en este ejemplo. La palabra clave operator se utiliza para proporcionar un método de sobrecarga para el operador *. El trabajo básico del operador «*» es multiplicar dos números enteros, pero en este ejemplo lo sobrecargamos definiéndolo para multiplicar dos objetos de una clase y tratarlos como dos números.

Creamos un método público en el que asignamos un número entero a un objeto. Luego creamos un método público para sobrecargar el operador «*» usando la palabra clave operator antes del símbolo y los parámetros. Los parámetros de esta función son los objetos de la clase anterior; por lo tanto, hereda la entidad de clase anterior que luego se multiplica en un nuevo objeto y ese objeto se devuelve mediante este método. En la función principal crearemos tres nuevos objetos y asignaremos a dos de ellos unos valores en el parámetro. Luego, estos objetos se multiplican por el operador sobrecargado y el resultado se muestra en la pantalla de salida. Después de compilar y ejecutar con éxito el programa anterior, obtendrá el siguiente resultado como se muestra en el fragmento:

Como podemos ver, los dos primeros números se muestran utilizando la función de visualización, que devuelve los objetos de la clase de validación. Luego tenemos el valor resultante de multiplicar estos dos objetos, que es «50», aunque el operador «*» solo saca el producto de dos números debido a nuestra sobrecarga, el operador también multiplicó con éxito dos objetos.

Ejemplo 04: sobrecarga del operador de igualdad en Ubuntu 20.04

Ahora sobrecargaremos el operador de igualdad en el lenguaje de programación C#. En este ejemplo, el operador de igualdad se usa para comparar objetos de una clase, en lugar de su función normal de asignar valores a las variables. Los valores del objeto son los mismos en este escenario, pero para diferenciar usamos una referencia diferente y vemos la diferencia en el resultado de esta operación.

Construiremos una clase «Examen» en el programa C# anterior y en él inicializaremos ciertas variables que usaremos en la función intrínseca «Display()». Luego asignaremos números equivalentes a dos objetos de la clase «Examen» y los compararemos entre sí, ya que el tercer elemento fue referenciado por el segundo, lo que conduce al mismo resultado. En la terminal de línea de comandos de Ubuntu 20.04, probaremos esta funcionalidad ejecutando la aplicación anterior.

Como podemos ver la primera comparación no fue un acierto pero la segunda si porque tenían la misma referencia.

Conclusión

En este artículo, discutimos el concepto básico de la sobrecarga de operadores. El lenguaje de programación C# permite el concepto de carga de operadores e incluso ya lo ha adaptado en relación con el operador «+», que también suma números y concatena cadenas. Los operadores sobrecargables se analizaron e implementaron en el entorno de Ubuntu 20.04 para comprender mejor cómo se crean los métodos de sobrecarga.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.