c# - C#如何在另一个类obj中初始化一个类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;
}
}
但如果可以的话,我更愿意有一个构造函数并避免使用属性设置器。
推荐阅读
- react-native - 如何在 react-native 中更改父级的变量
- r - R问题存储为因子R的日期列无法转换
- rust - 我可以从自定义类型中借用切片吗?
- r - 生成一个变量来计算连续条目
- python-xarray - Xarray:具有不同粒度/级别相同层次结构/多索引的多维数据集的操作
- vue.js - 如何在vue中隐藏元素?
- java - Java 对整数求和
- java - TreeMap#containsKey 在 put 之后返回 false
- c# - 检查窗口是否在 WPF 上打开
- python - 使用 BeautifulSoup 和 dataframe iterrows 抓取多个页面