Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: DanielPy en 29 Julio 2013, 19:52 pm



Título: Sobrecarga de operadores en C#
Publicado por: DanielPy en 29 Julio 2013, 19:52 pm
Hola a todos.
Alguien me puede dar una mano con esto, llevo días leyendo sobre el tema y bajando ejemplos y no logro entender esto de la sobrecarga de operadores, por Ej. ¿es muy distinto hacer lo mismo con un bucle foreach para sumar 2 vectores y poner el resultado en otro?.-

Fuente:
http://www.csharpya.com.ar/detalleconcepto.php?codigo=197&inicio=60
 (http://www.csharpya.com.ar/detalleconcepto.php?codigo=197&inicio=60)

Bueno, no se me ocurre nada más, espero alguna aclaración.-
Saludos.
Daniel


Título: Re: Sobrecarga de operadores en C#
Publicado por: Novlucker en 29 Julio 2013, 21:06 pm
La diferencia es que el método queda a nivel de clase, te doy un ejemplo más ilustrativo ...
Código
  1. public class Persona
  2. {
  3.    public string Nombre { get; set; }
  4.    public int Sueldo { get; set; }
  5.  
  6.    public static string operator +(Persona p, Persona p1)
  7.    {
  8.        return string.Format("La suma de los sueldos de {0} y {1} es de {2}", p.Nombre, p1.Nombre, p.Sueldo + p1.Sueldo);
  9.    }
  10. }

Código
  1. class Program
  2. {
  3.    static void Main(string[] args)
  4.    {
  5.        Persona p1 = new Persona { Nombre = "Carlos", Sueldo = 1000 };
  6.        Persona p2 = new Persona { Nombre = "Ana", Sueldo = 3000 };
  7.  
  8.        Console.WriteLine("La suma de los sueldos de {0} y {1} es de {2}", p1.Nombre, p2.Nombre, p1.Sueldo + p2.Sueldo);
  9.        Console.WriteLine(p1 + p2);
  10.        Console.ReadLine();
  11.    }
  12. }

En el segundo caso, solo estoy sumando las instancias de clase, y se asume que si sumo dos instancias, entonces me tiene que devolver ese texto. Quita el método de la sobrecarga y verás que ni compila.

Saludos


Título: Re: Sobrecarga de operadores en C#
Publicado por: DanielPy en 31 Julio 2013, 19:08 pm
Hola Novlucker
Me aclaró bastante el panorama tú ejemplo, ahora me surgieron otras dudas, ¿las propiedades no deben declararse fuera del get y set como privadas? y ¿porque get funciona sin un return?.-

Saludos.
Daniel


Título: Re: Sobrecarga de operadores en C#
Publicado por: Novlucker en 31 Julio 2013, 19:22 pm
http://icomparable.blogspot.com/2008/11/propiedades-automticas-en-c-3.html ;)

Saludos