BitInteger у меня из System.Numerics
.
Этот код выдает InvalidCastException: Заданное приведение является недопустимым на второй строке.
BigInteger bigint1 = (BigInteger)3455;
BigInteger bigint2 = (BigInteger)(ValueType)3455;
И все бы ничего, но на msdn так делают, и все в порядке. Что я делаю не так?
Вообще, я пытаюсь написать оператор приведения типа 'To'. Для классов все просто, а вот для структур я пытаюсь реализовать такой метод:
public static T To<T>(this ValueType o)
И все же, на msdn есть такой код:
public static NumericRelationship Compare(ValueType value1, ValueType value2)
{
// Use BigInteger as common integral type
if (IsInteger(value1) && IsInteger(value2)) {
BigInteger bigint1 = (BigInteger) value1;
BigInteger bigint2 = (BigInteger) value2;
return (NumericRelationship) BigInteger.Compare(bigint1, bigint2);
}
}
public static bool IsInteger(ValueType value)
{
return (value is SByte || value is Int16 || value is Int32
|| value is Int64 || value is Byte || value is UInt16
|| value is UInt32 || value is UInt64
|| value is BigInteger);
}
Они же приводят к BigInteger, почему у меня этот код не работает?
Исключение вылетало, потому что в моем коде при приведении к valuetype туда заносится int, а я потом пытаюсь достать оттуда BigInteger. BigInteger не является супертипом для int, поэтому и получалась ошибка приведения. Нисходящее преобразование. metanit | msdn
Столкнулся с проблемой: необходимо считывать данные с устройств по протоколу modbusЯ не могу понять, как получить ответ от устройства
имеем небольшой кусок кода, который по клику на кнопку вызывает cmd, и в ней исполняет apache benchНадо показать прогресс бар
Выполняю удаленную отладку сайта, который находится на веб-сервере IIS