У меня есть поле ulong
(я не могу изменить это). Мне нужно настроить это поле на сумму long
(может быть также int
). Однако я не могу добавить эти данные: Operator '+' is ambiguous on operands of type 'ulong' and 'long'
.Добавьте длинный и улунг в C#
Я не могу преобразовать long
к ulong
, потому что я потеряю знак, я не могу преобразовать ulong
к long
, потому что я мог потерять часть стоимости.
В конечном счете, я хочу попытаться отрегулировать значение, если это вызовет обертку, которую я хочу вернуть false
, а не завершить настройку. Если это не завершает, я хочу закончить настройку и вернуть true; Я могу сделать эту часть, но только в том случае, если я смогу найти способ объединить два поля в первую очередь.
public ulong Value;
public bool AdjustValue(long amount)
{
// Operator '+' is ambiguous on operands of type 'ulong' and 'long'
ulong adjustValue = Value + amount;
if (amount < 0 && adjustValue > Value)
return false;
if (amount > 0 && adjustValue < Value)
return false;
Value = adjustValue;
return true;
}
Как это можно решить?
Не ясно, что вы хотите сделать, но, возможно, вы можете найти решение с помощью Класс BigInteger из System.Numerics – Steve
'if (long <0) ulong - = (ulong) (- long); else ulong + = (ulong) long; '? – itsme86
@ itsme86 - отлично, я пробовал это, но пропустил '-long часть! Thanks –