Приветствую вас, пытаюсь понять как работают Generic методы, типы и прочее
имеется вот такой код
public static ReadType MyMethod<ReadType>(int MyValue1, int MyValue2)
{
byte[] bytes = new[8]{ MyValue1, MyValue2};
return (ReadType)Convert.ChangeType(bytes, typeof(ReadType));
}
Использовать я его пытаюсь так
label1.Text = MyMethod<int>(100, 100).ToString();
Но вылетает исключение
Объект должен реализовывать интерфейс IConvertible.
Я знаю что можно использовать возращаемый тип
dynamic
Но мне хочется всё же понять, как решить эту проблему, пытался делать вот так
ReadType MyMethod<ReadType>(int MyValue1, int MyValue2) where ReadType : IConvertible
Никаких плодов это не принесло, я MSDN перешерстил, подобные вопросы искал, но не могу решить свою проблему, как же всё таки реализовать этот интерфейс и решить эту проблему?
Очень надеюсь на подробное описание и решение данной проблемы.
Смотрим, что говорится на MSDN о Convert.ChangeType:
public static object ChangeType
(
object value,
Type conversionType
)
value
Type: System.Object
Объект, реализующий интерфейс IConvertible.
Смотрим на описание класса Array:
public abstract class Array : ICloneable, IList, ICollection,
IEnumerable, IStructuralComparable, IStructuralEquatable
Реализует массив интерфейс IConvertible? Нет, не реализует. Следовательно, его нельзя использовать в качестве первого параметра.
То есть ошибка выдается не о том типе, в который Вы пытаетесь конвертировать данные, а об исходном byte[].
Да и как вообще Вы представляете преобразование 8 байт (64 бита) в Int32 (32 бита)? В каком порядке эти байты должны обрабатываться? Что с ними должно происходить при преобразовании? Всё это знаете Вы - но никак не разработчики языка. Это не очевидное преобразование.
Используйте какую-то другую логику преобразования вместо Convert.ChangeType.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости