2017-09-01 9 views
0

私は、リムーバブルデバイスの挿入と削除を検出する必要があるIoTアプリケーションを構築しています。 DeviceWatcherオブジェクトを作成しようとすると、次のエラーが発生します。タイプWindows.Devices.Enumeration.DeviceWatcherを暗黙的にDeviceWatcherに変換することはできません

DeviceWatcher.CreateWatcher()の方法はDeviceWatcherです。なぜこのエラーが出るのですか?

私は問題が何であるか分かりませんが、これを解決する方法はわかりません。誰でもここに洞察力を与えることができますか?

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

エラー:

が暗黙的にタイプを変換できません 'Windows.Devices.Enumeration.DeviceWatcher' 'NamespaceName.DeviceWatcher'

アプリケーションの種類に:

のWindows 10背景のアプリケーション。アニバーサリーエディション。

マニフェスト能力:

リムーバブル記憶域

答えて

1

暗黙の変数宣言してみてください。

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

暗黙の宣言によって、さらなる説明

あなたが実際にその魔法を行うには、コンパイラをさせるされているが(インテリジェントな推測)、変数の型を導き出す右側に返されるデータ型に基づいて宣言されます。基本的には、watcher変数のタイプがDeviceWatcherであることが前提ですが、そうではありません。少なくともあなたが入力したものではありません。 THERはあなたのusingステートメント内で、おそらく紛争で、varを使用してDeviceInformation.CreateWatcher()

+0

これは、問題を解決しますが、なぜ、私は暗黙のうちにそれを宣言する必要がありますか? – Jnr

+0

@ Jnrあなたのコードには 'NamespaceName.DeviceWatcher'という名前空間に1つと、フレームワークに' Windows.Devices.Enumeration.DeviceWatcher'に2つのクラスが 'DeviceWatcher'という名前で2つあります。 'DeviceWatcher'をタイプすると、コード内で使用されましたが、関数はフレームワークからそれを再実行します。 'var'を使うとフレームワークから自動的に一つを選択します。 –

1

によって返された正しいタイプであるWindows.Devices.Enumeration.DeviceWatcherとは異なるものにDeviceWatcherデフォルトは一つの選択肢です。あなたはまた、明示的に名前空間を指定することができます。

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

関連する問題