重载的一元运算符++接受一个参数
本文关键字:参数 一个 一元 重载 运算符 | 更新日期: 2023-09-27 17:59:31
我想在C#中重载一个运算符"++",但当我编写以下代码时,VS 2012给了我一条错误消息。
public LogItem operator ++()
{
++ visitTimes;
}
错误为重载一元运算符++取一个参数
这是classLogItem:的定义
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; }
}
我应该怎么做才能使运算符"++"过载?
运算符需要是其定义类的静态成员,并且在++
的情况下采用该类型的参数:
public class LogItem
{
....
public static LogItem operator ++(LogItem item)
{
item.visitTimes ++;
return item;
}
}
有关更多示例,请参阅MSDN上的运算符重载教程。
在C#中重载一元运算符++会重载运算符的后缀和前缀版本。
请参阅:http://devhawk.net/2003/07/09/operator-overloading-in-c/http://www.programmingvideotutorials.com/csharp/csharp-operator-overloading