Оператор '<' не может быть применен к операндам типа '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))))
Кстати, это не имеет ничего общего с побитовыми операторами.