Comme c'est le cas, cela devrait fonctionner correctement. Voici une version refactorisée, vous pouvez choisir quels morceaux du refactoring vous aimez.
public void WriteFrameCodesAsBinary(IEnumerable<int> frameCodes)
{
using (FileStream fileStream = new FileStream(binaryFilePath, FileMode.Create))
using (BinaryWriter binaryWriter = new BinaryWriter(fileStream))
{
foreach (int frameCode in frameCodes) {
binaryWriter.Write(frameCode);
}
}
}
Je renomme la fonction pour décrire l'action qu'elle va effectuer. FrameCodesBinaryWriter
ressemble plus à un nom de classe pour moi.
Si vous n'avez pas besoin de la commande du List<T>
, il peut être une bonne idée d'accepter un IEnumerable<T>
à la place. De cette façon, vous pouvez être plus flexible sur ce que vous passez.
Certaines personnes aiment empiler leurs instructions d'utilisation pour supprimer une couche d'imbrication (indentation de code). Personnellement, je ne suis pas un grand fan de ceci, mais c'est une question de goût personnel et de style. L'utilisation d'un IEnumerable<T>
nous oblige à utiliser , mais même avec List<T>
, il peut sembler plus propre/rendre plus évident que vous parcourez la liste.
Comme mentionné précédemment, si vous utilisez using
, vous n'avez pas besoin de fermer explicitement le writer binaire - cela sera fait automatiquement lorsque le bloc using
sera fermé.
Est-ce que vous nous testez? Vous pouvez savoir si c'est correct - que s'est-il passé quand vous l'avez testé? – Hogan
le fichier est généré, mais je veux seulement m'assurer que c'est correct – ale
Astuce: vous n'avez pas besoin d'appeler explicitement Close() sur 'binaryWriter'. L'instruction 'using' prend soin de faire cela correctement. –