Hao*_*Xie 0 c# overloading operator-keyword
我想在C#中重载运算符'++',但是当我编写下面的代码时,VS 2012会给我一个错误消息.
public LogItem operator ++()
{
++ visitTimes;
}
Run Code Online (Sandbox Code Playgroud)
错误是重载的一元运算符++需要一个参数
我在这里是LogItem 类的定义:
public class LogItem
{
/**
* Constructor
*/
public LogItem(string ip)
{
ipAddress = ip;
visitTimes = 0;
}
/**
* Operator Overload Function
*/
public LogItem operator ++()
{
++ visitTimes;
}
public string ipAddress { get; private set; }
public string location { get; set; }
public int visitTimes { get; private set; }
}
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能重载运算符'++'?
运算符需要是其定义类的静态成员,并且如果++采用该类型的参数:
public class LogItem
{
....
public static LogItem operator ++(LogItem item)
{
item.visitTimes ++;
return item;
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多示例,请参阅MSDN上的运算符重载教程.