假设我有这样的课程:
public class Config {
public byte ALS { get; set; }
public bool BCP { get; set; }
public short NRG { get; set; }
// 46 more bytes, shorts, and bools
public byte GRT { get; set; }
}
Config myConfig = new Config();
现在假设我有一个定义了相同类的 Arduino,它通过串行(使用 /n 字符,所以我可以使用 SerialPort.ReadLine())以相同的顺序一次将每个道具值作为字符串发送给我。当每个值到达时,我想把它放在下一个属性中。我真的很想做这样的事情:
<psudo code>
for (int i = 0; i < 50; i++)
{
myConfig[i] = (Config[i].GetType())port.ReadLine(); //reference the property by index, not by name
}
</psudo code>
请注意,在将新到达的值转换为适合目标属性类型之后,我将每个新到达的值放在实例的下一个属性中。我不是按名称(ALS、BCP.NRG 等)而是按索引(0、1、2、3 等)指定下一个属性。
有没有办法做到这一点?
戴夫