我正在设置两个队列,一个队列用于保存接收的8字节值,另一个队列用于保存要发送的8字节值。发送和接收将在一个单独的线程(或两个线程)中进行,该线程在我创建的WPF解决方案的App.xaml.cs文件中启动。我希望队列包含描述这些8字节值的STRUCT。
我真的不认为这件事很重要。我一直在C代码中永远使用STRUCT。但是由于某种原因,STRUCT定义似乎正在起作用(VS 17没有抱怨),STRUCT实例化似乎正在起作用,但是未识别STRUCT字段的初始化。 ????请参见下面的代码示例。
我尝试过:
// define the structures
public struct ReceiveStruct {
byte[] deviceName;
byte functionCode;
byte MSBbyte;
byte LSBbyte;
}
public struct SendStruct {
byte[] deviceName;
byte functionCode;
byte MSBbyte;
byte LSBbyte;
}
// instantiate the two structures that I want
public ReceiveStruct receiveStruct;
public SendStruct sendStruct;
// initialize the structure fields
receiveStruct.deviceName = 'abcde'; // HERE IS WHERE THE PROBLEM LIES
// Intellisense does not recognize
// these fields??? It does not
// list "deviceName" for example
// after
// the "dot" after
// "receiveStruct".
// receiveStruct.functionCode = 3;
.
.
.
// instantiate the queues
Queue receiveQueue = new Queue();
queue sendQueue = new Queue();
// populate the queues
receiveQueue.Enqueue(receiveStruct);
sendQueue.Enqueue(sendStruct);
.
.
.
我认为我将首次初始化struct字段,以不违反struct的“按值”规则,然后随着代码的进行而愉快地更改这些字段并加载队列,以便将其作为其他地方处理FIFO,实际上馈入其他LIST,然后将其作用并记录下来。没什么。
但是我无法克服愚蠢的struct初始化!!!!