J'ai enveloppé une méthode dll qui a un entier en tant que paramètre out dans un service Web. Lors des tests, je constatais que lorsque je m'attendais à -1, je recevais 65 535 à la place. Je me suis rendu compte que la DLL utilisait des entiers de 16 bits et je spécifiais l'entier .NET 32 bits standard en référençant la DLL externe dans mon code. ceci a été rapidement corrigé en spécifiant un entier de 16 bits et tout va bien.Pourquoi ce dépassement d'entier se produit-il?
Ma question est pourquoi est-ce arrivé? Je pourrais comprendre un débordement se produisant si j'essayais d'ajuster un entier de 32 bits dans un entier de 16 bits mais je ne suis pas si sûr que cela se produise dans l'autre sens. Il est clair que ma compréhension de ce type de casting entre les types fait un peu défaut, donc toute orientation sera grandement appréciée.
@Paul - Merci pour l'explication et le lien. Ensemble, ils l'ont bien expliqué. –