Je sais qu'il est subjectif, mais ce fut le résultat que je suis venu avec basé sur la réponse à me question précédente et il semble un peu « giflé ensemble », comme je l'ai changé un peu:Est-ce le meilleur code à utiliser pour lire à partir d'un réseau (vb.net)?
Private Function ReadFromBuffer(ByVal objReader As NetworkStream) As Byte()
Dim intRead As Integer = 1024
Dim allBytes(-1) As Byte
While intRead = 1024
Dim byteTempbuffer(1023) As Byte
intRead = objReader.Read(byteTempbuffer, 0, 1024)
ReDim Preserve byteTempbuffer(intRead - 1)
Dim tempold(allBytes.Length - 1) As Byte
tempold = allBytes
allBytes = tempold.Concat(byteTempbuffer).ToArray
End While
Return allBytes
End Function
Fondamentalement, y a-t-il une meilleure façon d'écrire ceci (même juste une partie du code) ou une façon plus efficace de le faire?
Fondamentalement, le code est là pour lire tous les octets d'un réseau 1024 octets à la fois. Et chaque fois qu'il lit les octets il met dans un tableau qui est retourné. Le point que je pense pourrait être meilleur est seulement Redim byteTempbuffer
si intRead
est inférieur à 1024 (le redim est d'éviter d'ajouter des octets vides à la fin du tableau quand il y a moins de 1024 octets à lire depuis le networkstream) (fondamentalement, est-il plus efficace pour Redim à chaque fois ou pour passer et si déclaration et redim seulement si nécessaire)
Je pense que cela appartient à codereview.stackexchange.com – finnw