【发布时间】:2016-07-19 07:08:36
【问题描述】:
我有两个变量。
int x = 1;
uint y = 2;
类型必须保持为int 和uint。但是我不能用它们进行基本的算术运算。
y += x;
无法将类型“int”隐式转换为“uint”。显式转换 存在(您是否缺少演员表?)
所以我每次都必须做这样的事情?
if (x < 0)
{
y -= (uint)Math.Abs(x);
}
else
{
y += (uint)x;
}
来自 C/C++/Java 背景,这让我很困惑。
我在这里缺少什么吗?
为什么这种行为与提到的其他语言不同?
有更好的选择吗?
我认为这是该语言新手的常见问题。
不,我不依赖下溢。
【问题讨论】:
-
要执行
y += x,必须执行从int到uint的转换。因为这种转换是有损的,编译器需要你显式地执行它。
标签: c# types int type-conversion uint