2012-05-10 9 views
5

Come facciamo a implementare il sovraccarico per gli operatori Postfix e prefissi in C#come sovraccaricare postfix e l'operatore prefisso nel 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; 
    } 

} 

questo potrebbe essere un sovraccarico operatore non necessaria, ma il suo noto che ++ operatore può essere sovraccaricato . Come possiamo ottenere il comportamento diverso qui (i ++, ++ i)

+1

possibile duplicato del [post-incremento overloading degli operatori] (http://stackoverflow.com/questions/668763/post-increment-operator-overloading) – Jon

+0

Ho provato a cercare esso, grazie Jon !! – singsuyash

+1

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

risposta

-1

Il sovraccarico di incremento suffisso prendere un parametri int e il prefisso Non

come:

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; 
} 

ma sembra che il valore int è inutile lol

un'occhiata qui per maggiori informazioni: http://msdn.microsoft.com/en-us/library/f6s9k9ta(v=vs.80).aspx

+1

Questo è un esempio di C++. Funziona anche in C#? – sohil

+0

il collegamento è nel contesto di C++ non sono sicuro perché abbiamo bisogno di passare l'int i come parametro, non so come farlo funzionare – singsuyash

+0

Questo non funziona per me – singsuyash

Problemi correlati