【发布时间】:2015-02-24 07:10:24
【问题描述】:
尽管听起来很简单,但 C# 使将有符号整数(偏移量)添加到无符号值变得困难:
unsigned uintValue;
int offset;
// ...
uintValue += offset; // causes error CS0266
这可以通过将偏移量转换为有符号值来完成,但这对我来说看起来有点不安全和不可靠,如果偏移量的类型小于uintValue 是有风险的。
对于这个简单的问题,是否有一个优雅的解决方案,而不使用大量丑陋的类型转换?
在我的应用程序中,offset 可以是正数或负数,否则解决方案将很简单。
【问题讨论】:
-
“这可以通过将偏移量转换为有符号值来完成”它已经是。
-
不,类型转换并不难,只需根据 offset 的值使用 uintValue 即可。