Je suis désolé si c'est une double question, mais je ne trouve pas de réponse à cette ici ou ailleurs sur le web.
Je me suis occupé de la réécriture d'un vieux projet qui a été fait en C++, C#.
Ma tâche consiste à réécrire le programme pour qu'il fonctionne comme proche de l'original que possible.
Pendant un tas de fichier la manipulation de la précédente développeur qui écrit ce programme permet de créer une structure contenant une tonne de champs qui correspondent à la définition du format d'un fichier doit être écrit, donc tout ce travail est déjà fait pour moi.
Ces champs sont tous des tableaux d'octets. Ce que le code C++ alors n'est utiliser memset
pour définir cet ensemble de la structure de tous les espaces de caractères (0x20
). Une seule ligne de code. Facile.
Ceci est très important car l'utilité de ce fichier, éventuellement, à sattend à ce que le fichier dans ce format. Ce que j'ai eu à faire est de changer cette structure à une classe en C#, mais je ne peux pas trouver un moyen facile de les initialiser chacun de ces tableaux d'octets à tous les caractères d'espace.
Ce que j'ai fini par avoir à faire est de cette dans le constructeur de la classe:
//Initialize all of the variables to spaces.
int index = 0;
foreach (byte b in UserCode)
{
UserCode[index] = 0x20;
index++;
}
Cela fonctionne bien, mais je suis sûr qu'il doit y avoir un moyen plus simple de faire cela. Lorsque le tableau est mis à l' UserCode = new byte[6]
dans le constructeur le tableau d'octets est automatiquement initialisé à null par défaut des valeurs. Il n'y a pas moyen que je peux en faire tous les espaces lors de la déclaration, de sorte que lorsque j'appelle la classe de constructeur qu'il est initialisé tout de suite comme ça? Ou quelques - memset
-comme la fonction? Je vous remercie à l'avance.