Оператор '<' не может быть применен к операндам типа 'long' и 'ulong'

Я использовал.NET Reflector 8 от redgate, и я использовал функцию, которая экспортирует.dll в C# файлы, и я сталкиваюсь с одной ошибочной ситуацией, которую я не знаю, как исправить эту ошибку.

Состояние ошибки: Ошибка 36 Оператор '<' не может быть применен к операндам типа 'long' и 'ulong'

Я понимаю, что ошибка связана с побитовой, но я не уверен, как исправить конкретную ситуацию.

if (!flag && (num7 < (((ulong) endLocation) - (((ulong) 4L) + num6))))
         {
           this.offsetOfFirstEntry = endLocation - ((4L + ((long) num6)) + num7);
              if (this.offsetOfFirstEntry <= 0L)
                    {
                        throw new ZipException("Invalid embedded zip archive");
                    }
}

Вот снимок ошибки:

введите описание изображения здесь

Каков наилучший способ исправить эту ошибку?

1 ответ

Решение

Как насчет литья num7 к ulong?

if (!flag && ((ulong)num7 < (((ulong) endLocation) - (((ulong) 4L) + num6))))

Кстати, это не имеет ничего общего с побитовыми операторами.

Другие вопросы по тегам