Не удается неявно преобразовать тип Windows.Devices.Enumeration.DeviceWatcher в DeviceWatcher
Я создаю приложение IoT, которое должно определять, когда съемное устройство было вставлено и удалено. Я получаю следующую ошибку при попытке создать объект DeviceWatcher.
DeviceWatcher.CreateWatcher()
метод имеет тип DeviceWatcher
, Почему я получаю эту ошибку?
Я не уверен, в чем проблема, и я не знаю, как решить эту проблему. Кто-нибудь может дать понимание здесь?
DeviceWatcher watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);
Ошибка:
Не удается неявно преобразовать тип "Windows.Devices.Enumeration.DeviceWatcher" в "NamespaceName.DeviceWatcher"
Тип приложения:
Фоновое приложение Windows 10. Юбилейное издание.
Возможность манифеста:
Съемное хранилище
2 ответа
Попробуйте неявное объявление переменной:
var watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);
ДАЛЬНЕЙШЕЕ ОБЪЯСНЕНИЕ
Путем неявного объявления вы фактически позволяете компилятору сделать свое волшебство (разумное предположение) и получить тип переменной, будучи объявленным на основе типа данных, возвращаемых справа. В основном ваша ошибка заключается в предположении, что watcher
переменная должна иметь тип DeviceWatcher
но это не так. По крайней мере, не тот, который вы набрали. Это, вероятно, конфликт внутри вашего using
заявления, а DeviceWatcher
по умолчанию что-то другое, чем Windows.Devices.Enumeration.DeviceWatcher
который является правильным типом, возвращаемым DeviceInformation.CreateWatcher()
С помощью var
это один из вариантов. Вы также можете указать пространство имен явно:
Windows.Devices.Enumeration.DeviceWatcher watcher = DeviceInformation.CreateWatcher(DeviceClass.PortableStorageDevice);