간단 소리에도 불구하고, C 번호는 힘든 작업이 부호없는 값으로 정수를 (AN 오프셋)를 추가 할 수 있습니다 :추가 C#으로 부호에 부호있는 정수
unsigned uintValue;
int offset;
// ...
uintValue += offset; // causes error CS0266
이것은 변환하여 수행 할 수 있습니다 부호가있는 값으로 상쇄되었지만 다소 불안전하고보기 흉한 것처럼 보입니다. 오프셋이 uintValue
보다 작은 경우 위험합니다. 추한 형식 변환을 사용하지 않고이 간단한 문제에 대한 우아한 해결책이 있습니까?
내 응용 프로그램에서 offset
은 양수 또는 음수 일 수 있습니다. 그렇지 않으면 해결책은 간단합니다.
는 "이것은 서명 된 값으로 오프셋 (offset)로 변환하여 수행 할 수 있습니다"그것은 이미. – Boann
아니요. 형식 변환이 해킹되지 않습니다. offset 값을 기반으로 uintValue를 사용하면됩니다. –