J'utilise J'ai remarqué que je peux passer une variable de type échantillon: p> bitconverter.getbytes () code> Pour convertir diverses variables (de types différents) en une matrice d'octet, pour transmettre à une méthode personnalisée où je dois vérifier la valeur de chaque octet .
octet code> sur
bitconverter.getbytes () code> (même s'il n'est pas répertorié dans la liste de surcharge: < un href = "http://msdn.microsoft.com/en-us/library/system.bitconverter.getbytes%28v=vs.100%29.aspx"> voir la page MSDN associée ) et dans ce cas J'ai toujours une matrice de 2 octets comme valeur de retour.
Ne devrais-je pas avoir un tableau monte-octet comme valeur de retour? Comment .NET interpréter l'argument d'octet? P>
4 Réponses :
Lorsque vous recherchez GetBytes () vous trouvera qu'il n'y a pas de surcharge qui prend un paramètre Vous envisagez les résultats de la correspondance la plus proche, En d'autres termes, votre code: p> est équivalent à: p> octet code>.
getbytes (int16) code> et que bien sûr produit A
octet [2] code>. p>
Il utilise réellement la surcharge pour courte code> au lieu de
octet code>, ce qui signifie qu'il mondit votre octet sur un
court code>, qui est 2 octets longs. p>
Il n'y a pas de surcharge pour Cependant, la section 6.1.2 de la spécification de langue C # indique qu'il existe une conversion numérique implicite p>
• De l'octet à court, Ushort, int, uint, long, ulong, flotteur, double ou décimal. p>
blockQuote>
Ceci provoque le compilateur de convertir le getBytes code> qui accepte un octet code> code>. p>
octet code> sur
court code> (qui correspond à 2 octets), ce qui provoque la méthode de retour d'une matrice de 2 octets. P>
Comme les autres réponses ont signalé, il n'y a pas de surcharge de getBytes qui prend un paramètre d'octet. La question suivante est pourquoi choisir la surcharge qui prend une courte durée. Il pourrait choisir l'un de ces éléments par exemple:
S C1 byte short (T1) C2 byte int (T2)
L'échantillon serait plus intéressant avec
arg! = 0x00 code>
Comme les réponses indiquent, vous voyez les résultats d'une conversion implicite de
octet code> vers
court code>. Voici la liste des conversions numériques implicites prédéfinies dans C #: msdn.microsoft.com/en-us/library/y5b434w4(v=VS.110).aspx
Les concepteurs-cadres ont supposé que vous n'avez pas besoin d'aide pour convertir un octet vers un octet.
@Prestonguillot Je ne savais pas l'existence de cette table, très intéressante. (Et merci à tous pour le soutien!)