我正在开发一个项目,该项目使用大量的消息进行通信,在之前使用C I的项目中使用这些消息作为嵌套的结构数组
struct message
{
int value1;
int value2;
params[] parameters;
}
struct params
{
int value3;
int value4;
}
message messageList[2] =
{
{ 1, 2, { 1, 1 }},
{ 3, 4, { 2, 2 }},
null
}
/* not perfect but you get the idea */
struct message
{
int value1;
int value2;
params[] parameters;
}
struct params
{
int value3;
int value4;
}
message messageList[2] =
{
{ 1, 2, { 1, 1 }},
{ 3, 4, { 2, 2 }},
null
}
/* not perfect but you get the idea */
我试图在C#中做同样的事情,但到目前为止,我已经遇到问题。
最终目标:
我认为最好的方法是使用结构类似于C,但是C#结构的初始化与初始化对象一样混乱/复杂,并且不会使所有消息,参数的易于维护的列表成为可能等等。
任何人都可以帮助我吗? 结构是要走的路还是还有其他更好的东西?
答案 0 :(得分:1)
您的示例的C#等价物如下:
public class Params
{
public int value3;
public int value4;
}
public class Message
{
public int value1;
public int value2;
public Params[] parameters;
}
Message[] messageList =
{
new Message { value1 = 1, value2 = 2, parameters = new[] { new Params { value3 = 1, value4 = 1 } } },
new Message { value1 = 3, value2 = 4, parameters = new[] { new Params { value3 = 2, value4 = 2 } } }
};
答案 1 :(得分:0)
你真的应该使用class
,而不是struct
。此类型违反了适用struct
时的大部分规则。
至于初始化 - 如果您使用List<T>
,则可以使用集合初始值设定项来简化创建和使用。您可以解析文件以在启动时创建对象,而不是对代码中的初始化进行硬编码。