Я занят переписанием старого проекта, который был выполнен на С++, на С#.
Моя задача - переписать программу так, чтобы она работала как можно ближе к оригиналу.
Во время обработки файлов предыдущий разработчик, который написал эту программу, создает структуру, содержащую тонну полей, которые соответствуют заданному формату, в который должен быть записан файл, поэтому все, что работает, уже сделано для меня.
Эти поля представляют собой все байтовые массивы. То, что делает код С++, это использовать memset
, чтобы установить всю эту структуру для всех пробелов символов (0x20
). Одна строка кода. Легко.
Это очень важно, поскольку утилита, к которой в конечном итоге идет этот файл, ожидает файл в этом формате. То, что мне нужно было сделать, это изменить эту структуру на класс в С#, но я не могу найти способ легко инициализировать каждый из этих массивов байтов ко всем символам пробела.
То, что мне пришлось сделать, это это в конструкторе класса:
//Initialize all of the variables to spaces.
int index = 0;
foreach (byte b in UserCode)
{
UserCode[index] = 0x20;
index++;
}
Это отлично работает, но я уверен, что должен быть более простой способ сделать это. Когда массив установлен в UserCode = new byte[6]
в конструкторе, массив байтов автоматически инициализируется нулевыми значениями по умолчанию. Не существует способа, чтобы я мог превратить это все пробелы в объявление, так что, когда я вызываю конструктор моего класса, что он инициализируется прямо так? Или некоторая memset
-подобная функция?