Programa de C# para sobrecargar los operadores de incremento (++) y decremento (–) unarios

En C#, la sobrecarga es la forma habitual de implementar el polimorfismo. Es la capacidad de redefinir una función en más de una forma. Un usuario puede implementar la sobrecarga de métodos definiendo dos o más métodos en una clase que comparten el mismo nombre pero con firmas de métodos diferentes. Entonces, en este artículo, aprenderemos cómo sobrecargar los operadores de incremento y decremento unarios.

Operador de disminución de sobrecarga

En C#, el operador de decremento (–) se usa para disminuir un valor entero en uno. Es de dos tipos, operador previo al decremento y operador posterior al decremento. Cuando este operador se coloca antes de cualquier nombre de variable, este tipo de operador se conoce como operador de pre-decremento, por ejemplo, –y, mientras que cuando el operador se coloca después de cualquier nombre de variable, este tipo de operador se conoce como operador de post-decremento, por ejemplo , y–. También podemos sobrecargar el operador de decremento usando la siguiente sintaxis. Aquí pasaremos el objeto como parámetro y luego estableceremos el valor de disminución en el valor del objeto y este método devolverá el valor disminuido.

Sintaxis:

public static GFG operator --(GFG obj)
{
    obj.value = --obj.value;
    return obj;
}

Ejemplo:

Input  : 50
Output : 49

Input  : 79
Output : 78

Ejemplo:

C#

// C# program to demonstrate overloading decrement operator
using System;
  
class GFG{
  
// Declare integer variable
private int value;
  
// Initialize data members
public GFG(int value){this.value = value;}
  
// Overload unary decrement operator
public static GFG operator--(GFG obj)
{
    obj.value = --obj.value;
    return obj;
}
  
// Display method to display the value
public void Display()
{
    Console.WriteLine("Values : " + value);
    Console.WriteLine();
}
}
  
class Geeks{
      
// Driver code
static void Main(string[] args)
{
      
    // Declare the object and assign
    // the value to 50
    GFG obj = new GFG(50);
      
    // Call the unary decrement overload method
    obj--;
  
    // Call the display method
    obj.Display();
}
}

Producción:

Values : 49

Operador de incremento de sobrecarga

En C#, el operador de incremento (++) se usa para incrementar un valor entero en uno. Es de dos tipos, operador de incremento previo y operador de incremento posterior. Cuando este operador se coloca antes de cualquier nombre de variable, ese tipo de operador se conoce como operador de incremento previo, por ejemplo, ++y, mientras que cuando el operador se coloca después de cualquier nombre de variable, ese tipo de operador se conoce como operador de incremento posterior, por ejemplo, y++. También podemos sobrecargar el operador de incremento usando la siguiente sintaxis. Aquí pasaremos el objeto como parámetro y luego estableceremos el valor de incremento en el valor del objeto y este método devolverá el valor incrementado.

Sintaxis:

public static GFG operator ++(GFG obj)
{
    obj.value = ++obj.value;
    return obj;
}

Ejemplo:

Input  : 50
Output : 51

Input  : 79
Output : 80

Ejemplo:

C#

// C# program to demonstrate overloading
// increment operator
using System;
  
class GFG{
      
// Declare integer variable
private int value;
  
// Initialize data members
public GFG(int value)
{
    this.value = value;
}
  
// Overload unary increment operator
public static GFG operator ++(GFG obj)
{
    obj.value = ++obj.value;
    return obj;
}
  
// Display method to display the value
public void Display()
{
    Console.WriteLine("Values : " + value);
    Console.WriteLine();
}
}
  
class Geeks{
  
// Driver code
static void Main(string[] args)
{
      
    // Declare the object and assign the value to 50
    GFG obj = new GFG(50);
      
    // Call the unary increment overload method
    obj++;
      
    // Call the display method
    obj.Display();
}
}

Producción:

Values : 51

Publicación traducida automáticamente

Artículo escrito por manojkumarreddymallidi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *