Я создал собственный тип для переноса чисел, это минимизированный код для демонстрации поведения:
Код: Выделить всё
struct Mystery(T value)
where T : IBinaryInteger
{
public T Value { get; } = value;
public int GetByteCount() => Value.GetByteCount();
}
Код: Выделить всё
Mystery mystery = new(short.MaxValue);
// Mystery mystery = new(new BigInteger(short.MaxValue)); // same behavior
Console.WriteLine(mystery.GetByteCount()); // 4
Console.WriteLine(mystery.Value.GetByteCount()); // 2
Console.WriteLine(((IBinaryInteger)mystery.Value).GetByteCount()); // 4
Код: Выделить всё
4
2
4
code>.
Однако, как видно из результатов, мой код не работает должным образом.
Где я ошибся?
Подробнее здесь: https://stackoverflow.com/questions/790 ... tbytecount