为什么这个简单的减法不起作用?
int MyPageNumber = Convert.ToInt32(cboPageNumber.SelectedItem); MyPageNumber += (MyPageNumber - 1); //does not work int MyNewPageNumber = MyPageNumber - 1; /works
我也希望有人可以告诉我为什么这给了我一条"红线"因为无法进行演员表演:
short MyPageNumber = Convert.ToInt16(cboPageNumber.SelectedItem); MyPageNumber += MyPageNumber - ((short) 1); //does not work says can't cast
我不明白的是什么?是+在示例中将其转换为字符串吗?
谢谢.
看看它究竟是做什么的:
MyPageNumber += (MyPageNumber - 1);
它将MyPageNumber-1 添加到现有值.因此,如果MyPageNumber为5,那么您最终会得到9而不是您想要的4.
现在对于第二个问题,你基本上得到了与此相当的情况:
short x = 5; short y = 10; short z = x - y;
它看起来不错,但C#实际上并不具有短裤减法运算符-它只有它整型,所以它的含蓄都转换x
和y
到int
.结果也是int
如此,你无法分配回来z
.你需要:
short z = (short) (x - y);
(或与您的真实变量名称等效).