【发布时间】:2011-09-03 06:05:03
【问题描述】:
我正忙着将一个用 C++ 完成的旧项目改写为 C#。
我的任务是重写程序,使其功能尽可能接近原始程序。
在一堆文件处理过程中,之前编写此程序的开发人员创建了一个结构,其中包含大量字段,这些字段对应于文件必须写入的设置格式,因此所有这些工作已经为我完成了。
这些字段都是字节数组。然后 C++ 代码所做的是使用 memset 将整个结构设置为所有空格字符 (0x20)。一行代码。很简单。
这是非常重要的,因为该文件最终进入的实用程序需要这种格式的文件。我必须做的是将此结构更改为 C# 中的一个类,但我找不到一种方法可以轻松地将这些字节数组中的每一个初始化为所有空格字符。
我最终不得不在类构造函数中这样做:
//Initialize all of the variables to spaces.
int index = 0;
foreach (byte b in UserCode)
{
UserCode[index] = 0x20;
index++;
}
这很好用,但我确信必须有更简单的方法来做到这一点。当数组在构造函数中设置为UserCode = new byte[6] 时,字节数组会自动初始化为默认的空值。有没有办法让它在声明时变成所有空格,这样当我调用我的类的构造函数时,它会像这样立即初始化?还是一些类似memset 的功能?
【问题讨论】:
标签: c# .net arrays initialization