[英]Initializing complex struct/object in C#
我正在開發一個項目,該項目在通信中使用大量消息,在以前的項目中,我使用C將這些消息作為結構的嵌套數組進行處理
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#結構體的初始化與初始化對象一樣混亂/復雜,而且它們都不容易維護所有消息,參數等的列表。
有人可以幫我從這里出去嗎? 結構是走的路還是還有其他更好的方法?
您的示例的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 } } }
};
您確實應該為此使用class
,而不是struct
。 此類型違反了何時使用struct
大多數規則。
至於初始化-如果使用List<T>
,則可以使用集合初始化程序來簡化創建和使用。 您可以在啟動時解析文件以創建對象,而不是對代碼中的初始化進行硬編碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.