gpt4 book ai didi

c# - 简单的减法和铸题

转载 作者:行者123 更新时间:2023-11-30 19:08:25 28 4
gpt4 key购买 nike

为什么这个简单的减法不起作用?

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# 实际上并没有用于 shorts 的减法运算符——它只在整数上有,所以它隐式地将 xy 转换为整数。结果也是 int,您不能将其分配回 z。你需要:

short z = (short) (x - y);

(或与您的真实变量名称等效)。

关于c# - 简单的减法和铸题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/595399/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com