我正在尝试将ulong(Uint64)添加到正常的int值 ,它给了我标题中的错误(我正在使用visual studio 2015社区) 我也尝试将所有这些都投入ulong,但它仍然不起作用 这是一些示例代码
ulong balance = 0;
int salary = 5;
private void button_click()
{
//this is what the error refrences:
balance = balance + salary;
//here's when I try to cast(gives the same error):
balance = (ulong)(balance + salary);
console.writeline("your balance is now : " + balance.tostring());
}
无论运算符是(/,+,*, - ),它仍会给出相同的错误:/ 我搜遍了整个地方,找不到任何解决这个问题的方法 我在msdn上检查过7页,没有,没有:(
我只是想知道如何加,减,除或乘以它们,谢谢:)
答案 0 :(得分:6)
问题是您已将balance + salary
的结果转换为salary
而不是ulong
以匹配balance
类型。
这应该足够了:
balance += (ulong)salary;
如果要减少占用内存,可以将salary
强制转换为uint
而不是ulong
(32位整数与64位整数)。当然,在一些非常罕见的情况下(大量数据而不是那么多内存)它确实有意义。
此外,您还需要考虑将有符号整数转换为无符号整数可能会导致某些(非)预期行为。
答案 1 :(得分:3)
您可以在添加:{/ p>时将int
投射到ulong
balance += (ulong)salary;
或者长篇形式:
balance = balance + (ulong)salary;
答案 2 :(得分:0)
问题是Ulong总是积极而int不是。 但是,将薪水作为一个uint然后添加它们也很好。
这是有道理的,不会发出任何警告。