0

我正在构建一个 IoT 应用程序,该应用程序需要检测何时插入和移除了可移动设备。尝试创建 DeviceWatcher 对象时出现以下错误。

DeviceWatcher.CreateWatcher()方法是 type DeviceWatcher。为什么我会收到此错误?

我不确定问题是什么,也不知道如何解决。任何人都可以在这里提供见解吗?

DeviceWatcher watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);

错误:

无法将类型“Windows.Devices.Enumeration.DeviceWatcher”隐式转换为“NamespaceName.DeviceWatcher”

申请类型:

Windows 10 后台应用程序。周年纪念版。

清单能力:

移动存储

4

2 回答 2

1

尝试隐式变量声明:

var watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);

进一步说明

通过隐式声明,您实际上是在让编译器发挥其魔力(智能猜测)并派生变量的类型,根据右侧返回的数据类型进行声明。基本上你的错误是假设watcher变量应该是类型DeviceWatcher但它不是。至少不是你输入的那个。using您的语句中可能存在冲突,并且DeviceWatcher默认值与Windows.Devices.Enumeration.DeviceWatcher返回的正确类型不同DeviceInformation.CreateWatcher()

于 2017-09-01T16:15:50.150 回答
1

使用var是一种选择。您还可以显式指定命名空间:

Windows.Devices.Enumeration.DeviceWatcher watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);

于 2017-09-01T16:24:32.467 回答