C#重载的一个简单的问题 呵呵LZ运算符的优先级没有搞清楚。赋值运算符=的优先级比++高。Complex e = a++; 这一句是先把a的值赋给e,然后再累加。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主,您的double r, v; ...和public static Complex operator ++(Complex a) { double r = a.r + 1; double v = a.v + 1; return new Complex(r, v); } 是一样的r, v 么,应该不是!您在这个方法里重新定义了,在内存分配中,就是分配在栈内,把上面的 double r, v;给隐藏了.所以当然是那个结果.您可以把方法里的double去掉.试试看.随便乱说说,希望能起到抛砖引玉的效果.谢谢 最清晰的思路public static Complex operator ++(Complex a) { this.r = a.r + 1; this.v = a.v + 1; return new Complex(r, v); } 其他都可以不边,把double 变this,或者把double删除掉也OK. 大神 小弟求救 错误传递问题 字符类型 int 不接受 5.00 这种格式怎么办 C#访问EXCEL的问题?Microsoft.Office.Interop.Excel.dll 12.0是否兼容Excel 2003? C#一个简单的问题 带接口的类怎样实例化? 邮箱系统(ascx控件来做)??? Attributes(跳出选择对话框要如何实现) 如何设置ListView的行高啊?^_^ 急,在线等:System.IndexOutOfRangeException: 索引超出了数组界限 datalist中findcontrol的小问题在线等~~~~ 关于删除了Source file后报错的问题
double r, v;
.
.
.
和
public static Complex operator ++(Complex a)
{
double r = a.r + 1;
double v = a.v + 1;
return new Complex(r, v); }
是一样的r, v 么,应该不是!您在这个方法里重新定义了,在内存分配中,就是分配在栈内,把上面的 double r, v;给隐藏了.所以当然是那个结果.
您可以把方法里的double去掉.试试看.
随便乱说说,希望能起到抛砖引玉的效果.谢谢
public static Complex operator ++(Complex a)
{
this.r = a.r + 1;
this.v = a.v + 1;
return new Complex(r, v); }
其他都可以不边,把double 变this,或者把double删除掉也OK.