‘Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync()’无法正常工作
我有以下代码,在应用程序中显示文件选择器:
var FilePicker = new Windows.Storage.Pickers.FileOpenPicker(); FilePicker.ViewMode = Windows.Storage.Pickers.PickerViewMode.Thumbnail; FilePicker.SuggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.ComputerFolder; FilePicker.FileTypeFilter.Add(".pcs"); FilePicker.FileTypeFilter.Add(".pcp"); Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync();
但是, Windows.Storage.StorageFile File = await FilePicker.PickSingleFileAsync()
会在编译期间导致此错误:
错误CS4036’IAsyncOperation ‘不包含’GetAwaiter’的定义,并且找不到扩展方法’GetAwaiter’接受类型为’IAsyncOperation ‘的第一个参数(您是否缺少’System’的using指令?)
为什么会这样? 我从MSDN获得了代码。 有人可以帮帮我吗?
注意:我正在为通用Windows编程。
您在使用中缺少对System
的明显引用。
using System;
为什么你需要这个参考,为什么它抱怨它缺少一个看似未使用的方法?
await
,它实际上调用了WindowsRuntimeSystemExtensions.GetAwaiter
,这是一种IAsyncOperation
的扩展方法(以使TaskAwaiter
等待)。 由于WindowsRuntimeSystemExtensions
驻留在System
命名空间中,因此您需要using
来获取扩展方法。