Недавно я обнаружил исключение в С# при использовании метода Array.SetValue(Int32). Исключением было:
Невозможно расширить из типа источника в целевой тип либо потому, что источник тип не является примитивным типом или преобразование не может быть выполняется.
Ссылка на слово "примитив" меня немного удивила, потому что я думал, что тенденция относиться к этим типам как к встроенным типам, также что термин "примитивный тип" был неофициальным термином. В чем разница между "примитивными" типами и "встроенными типами значений"? Я не нашел определения примитивных типов в спецификации языка С#.