[英]C# How to initialise an array of a class obj, within another class obj?
我有一個需要初始化的 TrainingPlanData 類型的 obj trainingData。 此 obj 中的變量之一是不同類 TrainingPlanDataSet 的數組。
我將如何初始化 trainingData 的這一部分? (見下文)
謝謝
public class TrainingPlanData
{
public Int16 pool_ID = 3;
public byte[] training_plan_name = new byte[10];
public TrainingPlanDataSet[] training_set = new TrainingPlanDataSet[10];
}
public class TrainingPlanDataSet
{
public Int16 set_ID = 1;
public byte[] set_name = new byte[10];
public Int16 set_distance = 0;
}
public static TrainingPlanData trainingData = new TrainingPlanData
{
pool_length_override = 5,
training_plan_name = new byte[10] { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
training_set = new TrainingPlanDataSet[10] { ?????????????? }
};
如果您絕對必須在TrainingPlanData
具有可變屬性,則可以執行以下操作:
public class TrainingPlanData
{
public Int16 PoolID => 3;
public byte[] TrainingPlanName { get; set; }
public TrainingPlanSet[] TrainingSet { get; set; }
}
public class TrainingPlanDataSet
{
public Int16 SetID => 1;
public byte[] SetName { get; set; }
public Int16 SetDistance { get; set; } = 0;
}
public class TrainingPlanDataFactory
{
private const c_plans = 10;
public TrainingPlanData Create()
{
return new TrainingPlanData()
{
TrainingPlanName = new byte[c_plans] { 0x00, ..... }
TrainingSet = CreateDataSets();
}
}
private TrainingPlanDataSet[] CreateDataSets()
{
var arr = new TrainingPlanDataSet[c_plans]
for(int i = 0; i < c_plans; i++)
{
arr[i] = new TrainingPlanDataSet();
}
return arr;
}
}
但如果可以的話,我更願意擁有一個構造函數並避免使用屬性設置器。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.