Даже если это звучит просто, C# делает это тяжелая работа, чтобы добавить целое число (смещение) в беззнаковое значение:Добавить подписанное целое число без знака в C#
unsigned uintValue;
int offset;
// ...
uintValue += offset; // causes error CS0266
Это может быть сделано путем преобразования смещение к значению, но это выглядит несколько небезопасным и неудобным для меня, и это рискованно, если смещение имеет меньший тип, чем uintValue
. Есть ли элегантное решение для этой простой проблемы, не используя тонны уродливого преобразования типов?
В моей заявке offset
может быть положительным или отрицательным числом, в противном случае решение было бы тривиальным.
«Это может быть сделано путем преобразования смещения в знаковое значение» Это уже есть. – Boann
Нет, и преобразования типов не являются взломанными, просто используйте с uintValue на основе значения смещения. –