重载的一元运算符++需要一个参数

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)

我该怎么做才能重载运算符'++'?

Ale*_*kov 5

运算符需要是其定义类的静态成员,并且如果++采用该类型的参数:

public class LogItem
{ 
    ....
    public static LogItem operator ++(LogItem item) 
    {
       item.visitTimes ++;
       return item;
    }
}
Run Code Online (Sandbox Code Playgroud)

有关更多示例,请参阅MSDN上的运算符重载教程.