实现UWP USB接口示例时遇两类代码错误求助
针对UWP USB接口示例代码的两个错误修复方案
错误1:未赋值的局部变量'device'
代码foreach (var interf in device.Configuration.UsbInterfaces)报错,核心原因是device变量未初始化就被调用属性。你需要先通过UWP USB设备API获取有效的UsbDevice实例,再进行后续操作:
// 先通过设备选择器或DeviceWatcher获取目标USB设备的ID string targetDeviceId = "你的USB设备ID"; UsbDevice device = await UsbDevice.FromIdAsync(targetDeviceId); // 必须先判断device不为null,再访问其内部属性 if (device != null) { foreach (var interf in device.Configuration.UsbInterfaces) { // 执行你的业务逻辑 } }
错误2:无法将null转换为out参数
UsbInterfaceDescriptor.TryParse的第二个参数是out类型参数,不允许传入null。你需要声明一个UsbInterfaceDescriptor变量作为接收对象,即使后续不需要使用该变量,也必须传入:
UsbInterfaceDescriptor tempDescriptor; if (descriptors.Count >= 2 && UsbInterfaceDescriptor.TryParse(descriptors[0], out tempDescriptor) && descriptors[1].Length == 0x0D && descriptors[1].DescriptorType == 0x24) { // 执行你的业务逻辑 }
如果不需要保留解析后的结果,也可以用C#的丢弃符号_简化代码:
if (descriptors.Count >= 2 && UsbInterfaceDescriptor.TryParse(descriptors[0], out _) && descriptors[1].Length == 0x0D && descriptors[1].DescriptorType == 0x24) { // 执行你的业务逻辑 }
内容的提问来源于stack exchange,提问作者Dave
相关产品推荐
相关产品推荐

