我们如何在c#
中实现postfix和prefix运算符的重载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;
}
}
这可能是一个不必要的运算符重载,但已知++运算符可能会重载。我们如何在这里实现不同的行为(i ++,++ i)
答案 0 :(得分:2)
从我所看到的,在C#中重载一元运算符++会重载运算符的后缀和前缀版本。
来源: http://devhawk.net/2003/07/09/operator-overloading-in-c/ http://www.programmingvideotutorials.com/csharp/csharp-operator-overloading
答案 1 :(得分:-2)
后缀增量重载采用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值无用lol
在此处查看更多信息:http://msdn.microsoft.com/en-us/library/f6s9k9ta(v=vs.80).aspx