2012-05-10 61 views
5

我們如何實現在C#中後綴和前綴運算符重載如何重載在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; 
    } 

} 

,這可能是不必要的操作符重載,但它知道,++運算符可以被重載。我們如何在這裏實現了不同的行爲(我+ +,+ +1)

+1

[後遞增運算符重載(http://stackoverflow.com/questions/668763/post-increment-operator-overloading) – Jon

+0

我試圖尋找它的可能重複,感謝喬恩! – singsuyash

+1

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

回答

-1

後綴增量超載採取int參數和前綴不

,如:

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

但似乎int值是沒用的笑

看看這裏的更多信息:http://msdn.microsoft.com/en-us/library/f6s9k9ta(v=vs.80).aspx

+1

這是一個C++的例子。這是否也在C#中工作? – sohil

+0

該鏈接是在C++的上下文我不知道爲什麼我們需要通過int我作爲參數,不知道如何使其工作 – singsuyash

+0

這不適用於我 – singsuyash