2011-02-03 2 views

Répondre

3

Il n'y a pas de boucle ici. Vous pouvez utiliser BitConverter.GetBytes à la place de la distribution de type punition non sécurisée.

byte[] InputBuffer = BitConverter.GetBytes(value); 

remplace les six lignes de code d'origine.

+0

En effet. La réponse à l'autre question semble être délibérément opaque et showoffy. L'appel de 'BitConverter' est beaucoup plus lisible et n'a probablement pas de coût de performance supplémentaire par rapport au code dangereux (en particulier lorsqu'il est pris dans le contexte de tout ce qui se passe dans la réponse à l'autre question). – LukeH

+1

@LukeH: 'BitConverter' fait probablement le type-punning, mais puisqu'il est dans un assembly signé par Microsoft, il peut être utilisé dans toutes sortes de scénarios de confiance partielle, l'appelant reste vérifiable et après inlining dans le JIT, je ' d s'attendre à ce que le code machine soit exactement le même. Subverser le système de type dans ce cas particulier n'a pas de ramifications de sécurité, car 'BitConverter' nécessite que les entrées et les sorties soient des types numériques primitifs. –