gpt4 book ai didi

c# - 如何在不为每个成员使用一行代码的情况下填充结构数组?

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:21 30 4
gpt4 key购买 nike

我目前正在尝试寻找一种更好的方法来填充结构数组。首先,这是用于制作我的结构的数据

enum DataType
{
Uint8, Uint16, Byte, Int16, Int32,
TypeSatInfo, TypeCell, ByteArray
}
enum ReadWriteState
{
ReadWrite, ReadOnly, WriteOnly
}
struct Parameter
{
public string ParamName;
public short ParamId;
public DataType Datatype;
public ReadWriteState ReadWrite;

}

然后我有一个类应该包含我填充的数组

static class Parameters
{
public static Parameter[] Param = new Parameter[80];
}

我的最后一部分是函数,我想用它来填充数组。

void populateParameters()
{
Parameters.Param[0].ParamName = "RevProtocol";
Parameters.Param[0].ParamId = 0x0001;
Parameters.Param[0].Datatype = DataType.Uint16;
Parameters.Param[0].ReadWrite = ReadWriteState.ReadOnly;

Parameters.Param[1].ParamName = "HwProtocol";
Parameters.Param[1].ParamId = 0x0002;
Parameters.Param[1].Datatype = DataType.Uint16;
Parameters.Param[1].ReadWrite = ReadWriteState.ReadOnly;

//keep this going until array is full.
}

我希望做这样的事情:

 Parameters.Param[80] = {{"RevProtocol", 0x0001, DataType.Uint16, ReadWriteState.ReadOnly},  
{"HwProtocol", 0x0002, DataType.Uint16, ReadWriteState.ReadOnly}}

通过这样做,我希望能够一次填充整个数组,但我似乎无法为此找到正确的语法。这样的事情可能吗?

最佳答案

你很接近。使用对象和集合初始值设定项时,您仍然需要使用 new 关键字:

Parameters.Param = new Parameter[]
{
new Parameter { ParamId = 0x0001, ParamName = "RevProtocol", Datatype = DataType.Byte },
new Parameter { ParamId = 0x0002, ParamName = "HwProtocol", Datatype = DataType.TypeCell },
};

Object and Collection Initializers (C# Programming Guide) 中查看更多详细信息

关于c# - 如何在不为每个成员使用一行代码的情况下填充结构数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40398785/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com