我有一个需要初始化的 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;
}
}
但如果可以的话,我更愿意拥有一个构造函数并避免使用属性设置器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句