2012-05-10 16 views
5

¿Cómo implementamos la sobrecarga de operadores de sufijo y prefijo en C#cómo sobrecargar Postfix y operador de prefijo en C#

void Main() 
{ 
    MyClass myclass=new MyClass(); 
    myclass.x=5; 
    Console.WriteLine((++myclass).x); 
      Console.WriteLine((myclass++).x); 
} 

public class MyClass 
{ 
    public int x; 
    public static MyClass operator ++(MyClass m) 
    { 
     m.x=m.x+1; 
     return m; 
    } 

} 

esto podría ser una sobrecarga del operador innecesaria, pero su conocido que ++ operador puede sobrecargarse . ¿Cómo podemos lograr el comportamiento diferente aquí (i ++, ++ i)

+1

posible duplicado de [Post-incremento Sobrecarga de operadores] (http://stackoverflow.com/questions/668763/post-increment-operator-overloading) – Jon

+0

He intentado buscar que, gracias Jon !! – singsuyash

+1

public static MyClass operator ++ (MyClass m) \t { \t \t return new MyClass() {x = m.x + 1}; \t} funciona! – singsuyash

Respuesta

-1

La sobrecarga de sufijo toman un incremento parámetros int y el prefijo No

como:

public static MyClass operator ++(MyClass m) 
{ 
    m.x=m.x+1; 
    return m; 
} 

public static MyClass operator ++(MyClass m, int i) 
{ 
    m.x=m.x+1; 
    return m; 
} 

pero parece que el valor int es inútil lol

vistazo aquí para obtener más información: http://msdn.microsoft.com/en-us/library/f6s9k9ta(v=vs.80).aspx

+1

Este es un ejemplo de C++. ¿Funciona esto también en C#? – sohil

+0

el enlace está en el contexto de C++ no estoy seguro de por qué necesitamos pasar el parámetro int i como parámetro, no estoy seguro de cómo hacerlo funcionar – singsuyash

+0

Esto no funciona para mí – singsuyash

Cuestiones relacionadas