‘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来获取扩展方法。