C#中的++运算符怎么重载?

heavenkiller 2003-11-06 12:32:12
C#中的++运算符怎么重载?
哪位兄弟能否举一个例子?
...全文
89 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
heavenkiller 2003-11-06
  • 打赏
  • 举报
回复
但是public static IntVector operator++(IntVector iv)这里iv参数并不是引用,为什么执行++之后,iv1会改变呢?奇怪!!!
looxee 2003-11-06
  • 打赏
  • 举报
回复
跟C++的重载差不多了。
class IntVector
{
...
public int Length { ... } // read-only property
public int this[int index] { ... } // read-write indexer
public IntVector(int vectorLength) { ... }
public static IntVector operator++(IntVector iv) {
IntVector temp = new IntVector(iv.Length);
for (int i = 0; i < iv.Length; ++i)
temp[i] = iv[i] + 1;
return temp;
}
}
class Test
{
public static void Main() {
IntVector iv1 = new IntVector(4); // vector of 4x0
IntVector iv2;
iv2 = iv1++; // iv2 contains 4x0, iv1 contains 4x1
iv2 = ++iv1; // iv2 contains 4x2, iv1 contains 4x2
}

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧