如何访问CmdMessenger中ReceivedCommand的嵌套属性值
CmdMessenger嵌套参数提取方案
问题场景
使用CmdMessenger库进行串口数据收发时,可正常读取ReceivedCommand类型变量的根层级Arguments属性,但需要提取该变量内部嵌套的arguments属性值(当前目标值为PBC),此前未处理过该场景。
相关代码片段
public static void SendFirmwareVersion(ReceivedCommand arguments) { // 可正常读取根层级属性值 string[] x = arguments.Arguments; // 需要读取内部深层嵌套的属性值? }
解决方案
根据变量结构(ReceivedCommand内部包含Command属性,其下的arguments数组即为目标嵌套参数),可通过以下代码提取目标值:
public static void SendFirmwareVersion(ReceivedCommand arguments) { // 读取根层级Arguments string[] x = arguments.Arguments; // 提取嵌套的"PBC"值 if (arguments.Command != null && arguments.Command.Arguments != null && arguments.Command.Arguments.Length > 0) { string targetValue = arguments.Command.Arguments[0]; // 此处获取到"PBC" // 此处添加后续业务逻辑 } }
说明
- 增加空值判断是为了避免空引用异常,确保程序稳定性
- 若嵌套参数的位置不是索引0,可根据实际结构调整数组索引
内容的提问来源于stack exchange,提问作者Dan Sewell
相关产品推荐
相关产品推荐

