Я обернул метод dll, который имеет целое число как параметр out в веб-службе. В тестировании я обнаружил, что, когда я ожидал -1, вместо этого я получил 65535. Я понял, что dll использует 16-битные целые числа, и я указывал стандартное 32-битное целое число .NET при ссылке на внешнюю dll в моем коде. это было быстро исправлено, указав 16-битное целое число, и все хорошо.Почему происходит это переполнение целого числа?
Мой вопрос: почему это произошло? Я мог понять, что происходит переполнение, если я пытаюсь установить 32-битное целое число из 16-битного целого числа, но я не уверен, почему это происходит наоборот. Ясно, что мое понимание такого типа литья между типами немного не хватает, поэтому любое руководство будет высоко оценено.
@Paul - Спасибо за объяснение и ссылку. Вместе они объяснили это красиво. –